2016-11-28 116 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')));