我有一个对象数组,从我需要找到'age = 1'和'name = one'的对象然后如何将它们组合起来..
我试试..
var array = [
{'name':'one', "age":'3'},
{'name':'two', "age":'1'},
{'name':'three', "age":'3'},
{'name':'four', "age":'1'},
{'name':'one', "age":'7'}
]
var required = ['one', '1'];
var name = _.where(array, {'name':'one'});
var age = _.where(array, {'age':'1'});
var combine = $.extend({}, name, age )
console.log(combine); // getting only age based objects...
如何使用下划线方法本身获取两个属性对象?
答案 0 :(得分:1)
var combine = _.reduce(array, function(result, obj) {
if (obj.name === 'one' || obj.age === '1') {result.push(obj);}
return result;
}, []);
答案 1 :(得分:1)
一般过滤/搜索功能是_.filter
:
过滤
_.filter(list, iterator, [context])
查看列表中的每个值,返回通过真值测试的所有值的数组(迭代器)。委派原生过滤器方法(如果存在)。
所以你想要:
_(array).filter(function(e) {
return e.name === 'one' || e.age === '1';
});