我知道给定对象数组,可以通过检查每个对象共有的对象属性来使用_.uniq()
过滤出唯一对象。我想知道,我可以一次检查两个属性吗?
例如:
var foo = [
{"name":"Steve", "age":"56", "car":"Porsche"},
{"name":"Steve", "age":"56", "car":"Mercedes"},
{"name":"Bill", "age":"57", "car":"Porsche"},
{"name":"Linus", "age":"56", "car":"Mercedes"}
];
var bar = _.unique(foo, false, function(obj, k, v){
return obj.name && obj.age;
});
console.log(bar);
我很希望能回到史蒂夫,比尔和莱纳斯那里。但是,it looks as though only
obj.age
is being checked against。 最佳答案
这个:
return obj.name && obj.age;
手段:
if (!obj.name)
return obj.name;
return obj.age;
仅返回一个值。在您的情况下,由于所有名称都不为空,因此将返回年龄。
如果要根据姓名和年龄的组合找到唯一的商品,可以执行以下操作:
return obj.name + "---" + obj.age; // replace "---" with whatever
这将返回一个根据名称和年龄构建的字符串。
关于javascript - 在_.uniq()中使用两个迭代器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17870034/