我有一个数组,它有一堆对象,我想通过'name'值过滤对象,我想再次使用下划线从另一个对象数组中省略那些对象。
我知道我们可以使用earch,但我没有得到正确的方法来做到这两点..
是谁帮我做这个?示例:
传入数组:
var incomingArray = [
{"name":"apple"},
{"name":"orange"},
{"name":"dog"},
{"name":"cat"},
{"name":"egle"}
];
过滤键:
var omit = ['orange' ,'dog'];
//我需要检查'orange'或'dog'是否存在,如果是这样的话。
var filtered = _.filter(incomingArray, function(obj, i){
return obj.name === omit[i]['name'];//this is wrong i need to loop again how?
});
var anotherArray = [
{"name":"apple"},
{"name":"orange"},
{"name":"dog"},
{"name":"cat"},
{"name":"egle"}
]
只返回没有省略的数组,如下所示:
var outgoingArray = [
{"name":"apple"},
{"name":"cat"},
{"name":"egle"} ]
我们如何通过适当的方法实现这一目标?
答案 0 :(得分:2)
你快到了!使用indexOf检查名称是否不属于省略数组:
var filtered = _.filter(incomingArray, function(obj) {
return omit.indexOf(obj.name) == -1;
});