2016-08-04 34 views
1

試圖合併兩個數組一些simmilar occurances兩個陣列 這裏就是我所做的在現有的角模型,避免同一對象

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」
我需要知道如何它可以有效地完成?
還有爲什麼是否發生?

回答

2

angular.merge不是用來合併數組但深入與源對象的枚舉的屬性延伸目標對象:

深切從SRC對象複製自己的枚舉的屬性延伸目標對象DST(S)到達。您可以指定多個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

0

語法合併是

var object = angular.merge({}, obj1, obj2); 

它顯示僅第二個元素

使用try

console.log(angular.merge(dst, src1, src2)); 
+0

這並不工作,如果你的意思是 ' src1 = json_src'和'src2 = json_dest' 和dst是一個新變量 –