2017-10-18 184 views
0

我需要angularJS 林與angular.merge嘗試(OBJ1,OBJ2)合併2個對象,但是這不是我所期待的合併兩個對象AngularJS

第一個對象

// obj1 
{ 
    "0": { 
    "name": "340.jpg", 
    "bytes": 21955, 
    "link": "340.jpg?dl=0", 
    "icon": "page_white_picture.png" 
    }, 

    "1": { 
    "name": "341.pdf", 
    "bytes": 3394, 
    "link": "340.pdf?dl=0", 
    "icon": "page_white_acrobat.png" 

    } 

二對象

// obj2 
{ 
    "id_pro": "70", 
    "nuevo": "true", 
    "fecha_ser": "2017-10-18" 
} 

預期結果

// Merged 
{ 

    "0": { 
    "name": "340.jpg", 
    "bytes": 21955, 
    "link": "340.jpg?dl=0", 
    "icon": "icons64/page_white_picture.png", 

    "id_pro": "70", 
    "nuevo": "true", 
    "fecha_ser": "2017-10-18" 
    }, 

    "1": { 
    "name": "341.pdf", 
    "bytes": 3394, 
    "link": "340.pdf?dl=0", 
    "icon": "page_white_acrobat.png", 

    "id_pro": "70", 
    "nuevo": "true", 
    "fecha_ser": "2017-10-18" 

    } 

} 

準確地在第一個對象的每個組中添加第二個對象。

可能與angular.merge或我需要一個自己的功能?謝謝

回答

1

你可以使用native javascript。

其中一種解決方案包括forEach方法與Object.assign組合,以便合併的屬性。

let obj={ 
 
    "0": { 
 
    "name": "340.jpg", 
 
    "bytes": 21955, 
 
    "link": "340.jpg?dl=0", 
 
    "icon": "page_white_picture.png" 
 
    }, 
 
    "1": { 
 
    "name": "341.pdf", 
 
    "bytes": 3394, 
 
    "link": "340.pdf?dl=0", 
 
    "icon": "page_white_acrobat.png" 
 

 
    } 
 
}; 
 
let second={ 
 
    "id_pro": "70", 
 
    "nuevo": "true", 
 
    "fecha_ser": "2017-10-18" 
 
} 
 
Object.keys(obj).forEach(function(key){ 
 
    Object.assign(obj[key],second); 
 
}); 
 
console.log(obj);

1

只是做第一個對象

for(var i in obj1) { 
    angular.merge(obj1[i], obj2); 
} 
+0

完美!謝謝凱明 –

0

值得一提的是,有許多方法來迭代的對象進行迭代。由於您正在使用AngularJS,您可以使用Angular幫助程序方法:

angular.forEach(obj1, function(obj) { 
    angular.merge(obj, obj2); 
});