如何使用underscore.js在javascript数组中找到给定值?

pri*_*nce 0 javascript javascript-framework underscore.js angularjs

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

这是我的情况,

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

 var searchValue = {'id': 1, 'name': 'xxx'};
Run Code Online (Sandbox Code Playgroud)

我试过以下,

var exists = _.where(array, {name: 'xxx'});
Run Code Online (Sandbox Code Playgroud)

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

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

但是有没有其他功能得到相同.

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

pht*_*ier 9

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

return !!_.findWhere(array, {name : 'xxx'});
Run Code Online (Sandbox Code Playgroud)

否则(但稍长)

return _.some(array, function (item) {
   return (item.name === "xxx");
});
Run Code Online (Sandbox Code Playgroud)

另外,请注意_.where和_.findWhere似乎在弃用行...而且正如@Juzer Ali指出的那样,如果您的目标是足够现代化的浏览器,您可能甚至不需要它.