我有一个我无法弄清楚的问题。基本上我收到两个带坐标的数组:
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);

我不确定如何使用这个新数组并将其转换为一个对象,为对象的每个元素分配x
和y
个键。
答案 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);