尝试将两个数组合并为两个数组中的一些相同的出现 这就是我做的事情
var json_dest = [
{
"legID":"12121",
"message":212112
},
{
"legID":"12122",
"message":212112
}
];
var json_src = [
{
"legID":"12121",
"message":212100
},
{
"legID":"12123",
"message":212112
}
];
console.log(angular.merge(json_dest, json_src));
输出是:
[
{
"legID":"12121",
"message":212100
},
{
"legID":"12123",
"message":212112
}
]
它合并了重复项
但我错过了另一个legID“12123”
我需要知道如何才能有效地完成工作?
还有为什么会发生什么?
答案 0 :(得分:2)
angular.merge
不用于合并数组,而是使用源对象的可枚举属性深度扩展目标对象:
通过将自己的可枚举属性从src对象复制到dst,深度扩展目标对象dst。您可以指定多个src对象。如果要保留原始对象,可以通过将空对象作为目标传递来实现:
var object = angular.merge({}, object1, object2)
Source
如果您只想将两个数组合并为一个,则不需要使用角度API来执行此操作。只需使用concat:
json_dest = json_dest.concat(json_src);
如果要删除某个属性的重复项,例如您的案例中的legID,则可以在组合数组后执行此操作。如何做到这一点有很多资源。例如,请参阅此问题:Remove duplicates from an array of objects in javascript
答案 1 :(得分:0)
merge的语法是
var object = angular.merge({}, obj1, obj2);
它只显示第二个元素
尝试使用
console.log(angular.merge(dst, src1, src2));