ana*_*han 3 javascript underscore.js
我有一个对象数组
var arr = [{a:1},{a:5}, {a:6},{a:11}];
Run Code Online (Sandbox Code Playgroud)
我想使用下划线查找where函数来检索满足条件的对象a = 1或a =11
喜欢:
_findWhere(arr, {a:1} || {a:11})
Run Code Online (Sandbox Code Playgroud)
这样的事情有可能吗?
find的行为类似于findWhere,它返回传递搜索条件的第一个项目.使用find,您可以使用谓词指定搜索条件.
var result = _.find(arr, function(item) {
return item.a == 1 || item.a == 11;
});
Run Code Online (Sandbox Code Playgroud)
你可以用纯 Javascript 编写它Array#some
var arr = [{ a: 1 }, { a: 5 }, { a: 6 }, { a: 11 }, { a: 11 }],
found = function (array) {
var index;
return arr.some(function (a, i) {
if (a.a === 1 || a.a === 11) {
index = i;
return true;
}
}) && array[index] || undefined;
}(arr);
document.write('<pre>' + JSON.stringify(found, 0, 4) + '</pre>');Run Code Online (Sandbox Code Playgroud)