我有兩個對象數組:Lodash/javascript:比較兩個集合並返回差異
我的表的元素不是原始值,而是複雜的對象。
array1 = [obj1,obj2,obj3,obj4]
array2 = [obj5,obj5,obj6,obj7]
我想比較兩個陣列和看到陣列2的元件的已經存在於ARRAY1然後創建的差的一個新的數組。
有什麼建議嗎?
我有兩個對象數組:Lodash/javascript:比較兩個集合並返回差異
我的表的元素不是原始值,而是複雜的對象。
array1 = [obj1,obj2,obj3,obj4]
array2 = [obj5,obj5,obj6,obj7]
我想比較兩個陣列和看到陣列2的元件的已經存在於ARRAY1然後創建的差的一個新的數組。
有什麼建議嗎?
var presents = _.intersectionWith(array1, array2, _.isEqual);
var dif = _.differenceWith(array1, array2, _.isEqual);
_.differenceWith是隻可用自4.0.0 lodash版本 –
ES6這將是不夠的:
array2.filter(e => !array1.includes(e));
沒有包括
array2.filter(e=> array1.indexOf(e) < 0);
Plunker爲您
不能使用你的解決方案,因爲我使用角度2與打字稿,包括返回一個錯誤 –
_.difference給你只有在第一個陣列但不在第二個陣列中的元素,沒有任何關於陣列2中不在陣列1中的元素。
這是你想要實現的嗎?
是這就是我'正試圖實現,但是當我使用_difference的情況下,我的兩個數組是idantical我有array1作爲輸出!這是正常的嗎? –
不...應該發給你[](我已經在lodash文檔中的chrome控制檯上測試過了...)。你使用nodejs還是Web瀏覽器? –
是的最後它工作正常,這是我犯的一個錯誤。 thx爲你的幫助 –
是的,'_.difference' – georg