2016-11-28 121 views
0

我不得不物體如數組:深合併非匹配對象數組

https://plnkr.co/edit/RQs9WWs1hcxmuKGIgEhM?p=preview

我想將它們結合起來,使得如果一個數組元素沒有出現在第二組,其帶來的,如果是的話,添加缺失的元素。

所以我想看到的是:

[{"car":"A","miles":100},{"car":"B","miles":100},{"car":"C","miles":100,"sold":"Y"}] 

[{"car":"B","miles":100,"sold":"Y"},{"car":"C","miles":100,"sold":"Y"}] 

[{"car":"A","miles":100},{"car":"B","miles":100,"sold":"Y"},{"car":"C","miles":100,"sold":"Y"}] 

注意「汽車A」只存在於第一陣列,並結轉。

Angular的合併只有在對象匹配時纔會起作用。有沒有一種合併兩個對象數組的優雅方式?我想我需要遍歷數組並建立一個通用數組。如果爲每個對象創建唯一標識符使匹配更容易。

+0

你只是想沒有重複合併的數組,對不對? – Mistalis

回答

0

如果你願意使用Lodash庫(或下劃線),它會讓你的生活變得更容易(一般來說),它也可以和Angular一起玩。

你可以實現你需要做與Lodash以下內容:

_.values(_.extend(_.keyBy(a, 'car'), _.keyBy(b, 'car')));