我正在尝试使用下划线唯一功能,但无法使其工作,这是我的测试代码:
var foo = [ { "a" : "1" }, { "b" : "2" }, { "a" : "1" } ];
_.unique(foo, function(item, k, v){
return item.a;
});
console.log(foo);
_.unique(foo, 'a');
console.log(foo);
如上所述:Removing duplicate objects with Underscore for Javascript,测试代码在这里:http://jsfiddle.net/bingjie2680/wDvpM/2/,两个都打印出三个对象。我无法弄清楚问题,任何人都可以帮忙吗?非常感谢。
答案 0 :(得分:5)
uniq
返回一个新数组。当你省略第二个参数时,函数似乎不喜欢它。
这有效:
var foo2 = _.unique(foo, false, function(item, k, v){
return item.a;
});