尝试合并两个数组中出现相似情况的两个数组这是我做的
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"
我需要知道如何有效地完成它
以及为什么会发生?
angular.merge
不用于合并数组,而是使用源对象的可枚举属性深度扩展目标对象:
通过将自己的可枚举属性从src对象复制到dst,深入扩展目标对象dst。可以指定多个src对象。如果要保留原始对象,可以通过传递一个空对象作为目标来实现:
var object = angular.merge({}, object1, object2)
源
如果您只想将两个数组合并为一个数组,则不需要一个有角度的API。简单使用concat:
json_dest = json_dest.concat(json_src);
如果您想通过某个属性(例如您的案例中的legID)删除重复项,则可以在组合数组后执行此操作。关于如何做到这一点,有很多资源。例如,请参阅以下问题:从javascript 中的对象数组中删除重复项
合并的语法是
var object = angular.merge({}, obj1, obj2);
它只显示了第二个元素
尝试使用
console.log(angular.merge(dst, src1, src2));