我有一个像这样的JS对象数组:
Ident: "2"
Text: "Foo"
现在我想检查Ident
等于2
的对象是否在数组中。我怎样才能做到这一点? jQuery.inArray
无法实现这一点,因为我没有整个对象,只有Ident
。
答案 0 :(得分:3)
你确实必须在这里完成循环:
function findByIdent(array, ident) {
var i;
for (i = 0; i < array.length; i++) {
if (array[i].Ident === ident) {
return i;
}
}
return -1; // not found
}
如果有任何安慰,这曾经是所有的方式 - 这个元素在这个数组调用完成了!
请注意,这假设您的数组看起来大致如下:
[{Ident: "2", Text: "foo"}, {Ident: "3", Text: "bar"}]
答案 1 :(得分:3)
正如您提到的JQuery,您可以使用“grep”方法:
if (jQuery.grep(arr, function( n ) {
return ( n.Ident == "2" );
}).length)
...
但它将遍历所有元素。
答案 2 :(得分:1)
var found = false;
for (var i =0;i<somearray.length;i++) {
if (somearray[i].Ident === 2) {
found = true;
break;
}
}