我需要在angularJS中合并2个对象 我尝试使用angular.merge(obj1,obj2),但这不是我的预期
第一个对象
// 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或者我需要自己的功能?感谢
答案 0 :(得分: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 :(得分:1)
只需对第一个对象进行迭代
for(var i in obj1) {
angular.merge(obj1[i], obj2);
}
答案 2 :(得分:0)
值得注意的是,有很多方法可以迭代对象。既然你正在使用AngularJS,你可以使用Angular helper方法:
angular.forEach(obj1, function(obj) {
angular.merge(obj, obj2);
});