jquery 如何检查项目是否存在于JavaScript数组中[重复]

hxzsmxv2  于 5个月前  发布在  jQuery
关注(0)|答案(2)|浏览(42)

此问题在此处已有答案

Find object by id in an array of JavaScript objects(37个答案)
8年前就关门了。
我有一个这样的JavaScript数组

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

字符串
我需要检查这个数组中是否存在一个元素,我正在使用类似这样的东西。

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


除了这个似乎不起作用。我找不到什么东西可以为这个数组工作。有人能帮忙吗?

uyhoqukh

uyhoqukh1#

您的代码检查'dfsfsdfsdf'是否在数组中,而不是检查具有chatid属性的对象是否具有'dfsfsdfsdf'作为其值。
使用原生JavaScript数组方法:

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

字符串

svmlkihl

svmlkihl2#

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

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

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

字符串

相关问题