繁体   English   中英

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

[英]How to Combine two arrays into an object with keys

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

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键。

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

 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); 

您可能需要阅读解构分配

 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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM