【发布时间】:2011-08-20 12:32:36
【问题描述】:
我有一个 JSON 对象数组,如下所示:
var myArray = [
{name:'foo',number:2},
{name:'bar',number:9},
{etc.}
]
如何检测 myArray 是否包含 name="foo" 的对象?
【问题讨论】:
标签: javascript jquery arrays json
我有一个 JSON 对象数组,如下所示:
var myArray = [
{name:'foo',number:2},
{name:'bar',number:9},
{etc.}
]
如何检测 myArray 是否包含 name="foo" 的对象?
【问题讨论】:
标签: javascript jquery arrays json
除非我遗漏了什么,否则您至少应该使用 each 来提高可读性而不是 map。并且为了性能,你应该在找到你要找的东西后打破 each,没有理由继续循环:
var hasFoo = false;
$.each(myArray, function(i,obj) {
if (obj.name === 'foo') { hasFoo = true; return false;}
});
【讨论】:
有了这个:
$.each(myArray, function(i, obj){
if(obj.name =='foo')
alert("Index "+i + " has foo");
});
干杯
【讨论】:
Array.prototype.each 不存在。您的意思是来自 jQuery 的 $.each 或 Array.prototype.forEach,只有较新的浏览器才支持。
for(var i = 0; i < myArray.length; i++) {
if (myArray[i].name == 'foo')
alert('success!')
}
【讨论】:
for...in 循环数组。
var hasFoo = false;
$.map(myArray, function(v) {
if (v.name === 'foo') { hasFoo = true; }
});
【讨论】:
each)。