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

how to check if item exists in a javascript array

我有一个 javascript 这样的数组

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

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

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

除非这似乎不起作用。我找不到适合这个阵列的东西。有人可以帮忙吗?

因为你有对象,而不是数组中的字符串,我建议使用 jQuery 的 grep 方法:

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

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

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

使用本机 JavaScript 数组方法:

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