簡體   English   中英

Underscore.js獲得一組唯一的對象

[英]Underscore.js get an array of unique objects

我有2個對象數組。 陣列之間有重復項。 我想將它們合並到所有唯一對象的1個數組中(因此不能重復)。

如何通過比較每個對象的“ id”來做到這一點?

_.uniq()有一個名為_.uniq()的方法。 它看起來是正確的,但是我無法正確獲取“迭代器”參數的語法。

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方法(與用於過濾項目的屬性名稱的第二個參數一起使用)實現此_.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM