如何检查项目是否存在于javascript数组中

时间:2015-01-10 19:14:54

标签: javascript jquery arrays

我有像这样的javascript数组

   var open_chats = [];
   open_chats.push({
    "chatid": 'dfsfsdfsdf',
    "data": 'adfsdf'
   });

我需要检查这个数组中是否存在一个项目,我正在使用这样的东西。

    if ($.inArray('dfsfsdfsdf', open_chats) !== -1){
    alert('contains');
    }

除此之外似乎不起作用。我找不到适合这个数组的东西。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

由于您有对象,而不是数组中的字符串,我建议使用jQuery' grep方法:

var result = $.grep( open_chats, function( data ){ return data.chatid == 'dfsfsdfsdf'; });

if( result.length ) {
    alert('contains');
}

答案 1 :(得分:0)

您的代码正在检查数组中是否'dfsfsdfsdf',而不是chatid属性的对象是'dfsfsdfsdf'的值。

使用本机JavaScript数组方法:

var hasMatch = open_chats.some(function(chat) {
    return chat.chatid === 'dfsfsdfsdf';
});
if (hasMatch) {
    alert('contains');
}