1
有沒有一種方法可以根據元素位置的變化來比較數組之間的差異?下劃線 - 比較兩個對象陣列(位置)
我有對象的原始陣列進行它的元素的其中一個值發生變化,這種變化被映射到一個新的數組:
origElements = [{id: 1, value: 50},
{id: 2, value: 60},
{id: 3, value: 70}]
changedElements = [{id: 1, value: 50},
{id: 3, value: 60},
{id: 2, value: 120}]
var diff = _.difference(_.pluck(origElements, "id"), _.pluck(changedElements, "id"));
var result = _.filter(origElements, function(obj) { return diff.indexOf(obj.id) >= 0; });
在這種情況下,它是很清楚,爲什麼「結果」將返回沒有。由於[1,2,3]和[1,3,2]之間的值沒有區別。我試圖在這裏實現的是一種'嚴格的差異',它也會查看索引,從而返回對象的新順序的一些引用。
如果你加入拔毛的結果呢?這樣你會有一個獨特的字符串。 – amenadiel
你真的關心一個id的索引變化嗎?這似乎無關緊要。或者你關心價值的變化? – Jon
我關心索引的更改,因爲我在DOM上使用動畫來模擬更改位置的元素。當這個動畫結束時,我只是讓一個handlebars幫助器在DOM上呈現排序後的元素。 @amandiel可能會工作,我會嘗試它 – Mazka