首页 > 解决方案 > 基于其索引(无键)Javascript合并两个对象数组

问题描述

我有一个问题让我卡了一段时间。我正在使用Javascript。我有两个对象数组,如下所示:

第一个数组:

[ {颜色:“红色”,材质:“碳”},{颜色:“黑色”,材质:“铁”}]

第二阵列

[ [ { year_released: 2000 }, { price: 3000 }, { year_built: 1998 } ], [ { year_released: 1996 }, { price: 5000 }, { year_built: 1990 } ] ]

我需要将这些对象数组合并成这样:

[ {颜色:“红色”,材质:“碳”,年份:2000,价格:3000,年份:1998 },{颜色:“黑色”,材质:“铁”,年份:发布:1996,价格:5000,年份: 1990 } ]

请帮我解决这个问题。非常感谢。

标签: javascriptarraysmerge

解决方案


您需要使用来合并对象并根据您的要求Object.assign()遍历目标和源对象数组。

const targets = [ { color: "Red", spoiler: "carbon" }, { color: "Blue", spoiler: "oxygen" } ];
const sources = [ [ { year_released: 2000 }, { price: 3000 }, { year_built: 1998 } ], [ { year_released: 1996 }, { price: 5000 }, { year_built: 1990  } ] ];

const returnedTargets = targets.map((target, i) => 
  Object.assign({}, target, ...sources[i])
);

console.log(returnedTargets);

// console.log(target, sources, returnedTargets);
// [{"color":"Red","spoiler":"carbon"},{"color":"Blue","spoiler":"oxygen"}]
// [[{"year_released":2000},{"price":3000},{"year_built":1998}],[{"year_released":1996},{"price":5000},{"year_built":1990}]]
// [{"color":"Red","spoiler":"carbon","year_released":2000,"price":3000,"year_built":1998},{"color":"Blue","spoiler":"oxygen","year_released":1996,"price":5000,"year_built":1990}]


推荐阅读