如何使用JavaScript将两个对象数组合并为含合并对象的单个数组
JavaScript合并两个对象数组为单个对象数组
你需要将两个对象数组合并为一个包含合并后对象的数组,针对你的场景可以这样实现:
针对当前两个数组各含一个对象的情况
你的尝试已经接近正确,只是最后需要把合并后的对象包裹进数组里:
var arr1 = [ {id:1, name: "xxx"} ]; var arr2 = [ {details:"finance", cost:"100"} ]; // 方案1:合并数组后展开合并对象,再包裹为数组 var result = [Object.assign({}, ...[...arr1, ...arr2])]; // 方案2:直接取两个数组的唯一元素合并,更直观 var result = [Object.assign({}, arr1[0], arr2[0])];
扩展:两个数组长度相同,对应索引对象合并
如果后续遇到两个数组长度一致,需要将对应位置的对象合并成新数组的情况,可以用map遍历实现:
var arr1 = [{id:1, name:"xxx"}, {id:2, name:"yyy"}]; var arr2 = [{details:"finance", cost:"100"}, {details:"tech", cost:"200"}]; var result = arr1.map((item, index) => Object.assign({}, item, arr2[index]));
关键说明
Object.assign({}, obj1, obj2):以空对象为目标,将obj1和obj2的属性复制到新对象中,不会修改原数组里的对象。- 展开运算符
...:用于快速合并数组或展开对象属性,简化代码写法。
内容的提问来源于stack exchange,提问作者Codelearn
相关产品推荐
相关产品推荐

