如何使用键将两个数组合并到一个对象中

时间:2017-11-12 04:48:49

标签: javascript arrays object

我有一个我无法弄清楚的问题。基本上我收到两个带坐标的数组:

const xData = [1, 3, 5, 7, 9];
const yData = [2, 4, 6, 8, 10];

我需要将这两个数组合并到一个对象中:

var data = [{ x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 }, { x: 7, y: 8 }, { x: 9, y: 10 }];

我将两个数组合并在一起得到坐标



const xData = [1, 3, 5, 7, 9];
const yData = [2, 4, 6, 8, 10];

var coords = xData.map((v, i) => { return [v, yData[i]]; });

console.log(coords);




我不确定如何使用这个新数组并将其转换为一个对象,为对象的每个元素分配xy个键。

2 个答案:

答案 0 :(得分:3)

第一种方法是将中间数组映射到对象数组

const xData = [1, 3, 5, 7, 9];
const yData = [2, 4, 6, 8, 10];

var coords = xData.map((v, i) => [v, yData[i]]).map(([x, y]) => ({x, y}));

console.log(coords);

作为奖励,请参阅当前地图回调的简写

秒(首选,除非你也想要数组版本)方法是直接映射到对象

const xData = [1, 3, 5, 7, 9];
const yData = [2, 4, 6, 8, 10];

var coords = xData.map((x, i) => ({ x, y:yData[i]}));

console.log(coords);

您可能需要阅读destructuring assignment

答案 1 :(得分:1)



const xData = [1, 3, 5, 7, 9];
const yData = [2, 4, 6, 8, 10];
 

var coords = xData.map((v, i) => { return [v, yData[i]]; }).map(([x, y]) => ({x, y}));
console.log(coords);