检查元素是否在数组中

时间:2014-05-26 14:22:40

标签: javascript arrays

我有一个像这样的JS对象数组:

Ident: "2"
Text: "Foo"

现在我想检查Ident等于2的对象是否在数组中。我怎样才能做到这一点? jQuery.inArray无法实现这一点,因为我没有整个对象,只有Ident

3 个答案:

答案 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;
    }
}