我必须使用对象数组,例如:
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"}]
注意" Car A"仅存在于第一个数组中并被转移。
Angular的合并仅在对象匹配时才有效。是否有一种优雅的方式来合并两个对象数组?我以为我需要遍历数组并构建一个公共数组。如果为每个对象创建唯一标识符,则可以更轻松地进行匹配。
答案 0 :(得分:0)
如果您愿意使用Lodash库(或下划线),它会让您的生活变得更轻松(一般而言),它也适用于Angular。
通过使用Lodash执行以下操作,您可以实现所需:
_.values(_.extend(_.keyBy(a, 'car'), _.keyBy(b, 'car')));