我想知道给定值是否存在于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指出的那样,如果您要定位足够现代的浏览器,甚至可能不需要它。