Underscore.js 获取一组独特的对象
Underscore.js get an array of unique objects
我有 2 个对象数组。数组之间有重复项。我想将它们合并到所有 unique 对象的 1 个数组中(因此没有重复项)。
如何通过比较每个对象的 "id" 来做到这一点?
Underscore.js 有一个名为 _.uniq()
的方法。它看起来是正确的,但我无法正确获得 "iterator" 参数的语法。
var firstArray = [{ id: 1, name: "foo"}, { id: 2, name: "bar" }];
var secondArray = [{ id: 2, name: "boop" }, { id: 3, name: "baz" }];
firstArray.push(secondArray);
var myUniqueArray = _.uniq(firstArray, false, ???);
myUniqueArray // [{ id: 1, name: "foo"}, { id: 2, name: "bar" }, { id: 3, name: "baz" }];
您应该能够使用 _.uniq
方法实现此目的,该方法与要用于过滤项目的 属性 名称的第二个参数一起使用:
var firstArray = [{ id: 1, name: "foo"}, { id: 2, name: "bar" }];
var secondArray = [{ id: 2, name: "boop" }, { id: 3, name: "baz" }];
var result = _.uniq(firstArray.concat(secondArray), 'id');
alert(JSON.stringify(result, null, 4));
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
下面应该这样做:
var myUniqueArray = _.uniq(firstArray.concat(secondArray), false, function (obj) {
return obj.id;
});
这里的 iteratee 将生成一个检查唯一性的值,在本例中为 id
属性 值。
这是一个JSFiddle。
我有 2 个对象数组。数组之间有重复项。我想将它们合并到所有 unique 对象的 1 个数组中(因此没有重复项)。
如何通过比较每个对象的 "id" 来做到这一点?
Underscore.js 有一个名为 _.uniq()
的方法。它看起来是正确的,但我无法正确获得 "iterator" 参数的语法。
var firstArray = [{ id: 1, name: "foo"}, { id: 2, name: "bar" }];
var secondArray = [{ id: 2, name: "boop" }, { id: 3, name: "baz" }];
firstArray.push(secondArray);
var myUniqueArray = _.uniq(firstArray, false, ???);
myUniqueArray // [{ id: 1, name: "foo"}, { id: 2, name: "bar" }, { id: 3, name: "baz" }];
您应该能够使用 _.uniq
方法实现此目的,该方法与要用于过滤项目的 属性 名称的第二个参数一起使用:
var firstArray = [{ id: 1, name: "foo"}, { id: 2, name: "bar" }];
var secondArray = [{ id: 2, name: "boop" }, { id: 3, name: "baz" }];
var result = _.uniq(firstArray.concat(secondArray), 'id');
alert(JSON.stringify(result, null, 4));
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
下面应该这样做:
var myUniqueArray = _.uniq(firstArray.concat(secondArray), false, function (obj) {
return obj.id;
});
这里的 iteratee 将生成一个检查唯一性的值,在本例中为 id
属性 值。
这是一个JSFiddle。