我正在尝试在数组中查找与在UI中标记它们相同的对象。我似乎无法使用不受欢迎的人来做它。
我这样做:
var a = [ {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'}, {'id': 9, 'name': 'nick'}, {'id': 1, 'name': 'jake' } ];
var eaches = _.each(a, function (obj) {
_.find(a, function () {
return _.isEqual(a, obj);
});
});
提前致谢!
答案 0 :(得分:1)
似乎你需要这样的东西:
var a = [{
'id': 1,
'name': 'jake'
}, {
'id': 4,
'name': 'jenny'
}, {
'id': 9,
'name': 'nick'
}, {
'id': 1,
'name': 'jake'
}];
var eq = [];
_.each(a, function (x, i) {
var e = _.find(a, function (y, j) {
return i !== j && _.isEqual(x, y);
});
if (e) {
eq.push(x);
}
});
console.log(eq);
http://jsfiddle.net/f0t0n/WBbs5/
<强>更新强>
自定义“_.uniq
”基于_.isEqual
而不是===
严格比较:
var uniqEq = _.reject(eq, function(x, i) {
return _.find(eq, function(y, j) {
return i < j && _.isEqual(x, y);
});
});