我想知道给定值是否存在于javascript数组中。

这是我的情况

var array = [{'id': 1, 'name': 'xxx'},
         {'id': 2, 'name': 'yyy'},
         {'id': 3, 'name': 'zzz'}];

 var searchValue = {'id': 1, 'name': 'xxx'};


我尝试了以下方法

var exists = _.where(array, {name: 'xxx'});


它返回obj {'id': 1, 'name': 'xxx'}。它按预期工作。

在这里,我需要检查exists.length > 0以查找是否存在

但是还有其他获得相同功能的功能。

因为如果函数返回true如果存在,而返回false如果不存在,那就更好了。

最佳答案

这是相同的想法,但这会成功吗?

return !!_.findWhere(array, {name : 'xxx'});


否则(但长一些)

return _.some(array, function (item) {
   return (item.name === "xxx");
});


另外,请注意_.where和_.findWhere似乎在deprecation行上……正如@Juzer Ali指出的那样,如果您要定位足够现代的浏览器,甚至可能不需要它。

10-05 21:06
查看更多