首页 > 解决方案 > 如何映射两个数组来创建对象?

问题描述

我有两个数组,我需要创建像{x: new Date(2019, 1, 1), y: 0}我的数组的结果这样的对象

dates

Array [
  "2019, 1, 31",
  "2019, 2, 28",
  "2019, 3, 31",
]

monthlyTopUp

Array [
  0,
  50,
  0,
]

现在第一个数组中的每个索引都需要匹配第二个数组中的索引。

我试过的返回给我一个数组,里面有其他数组

Array [
  Array [
    "2019, 1, 31",
    0,
  ],
  Array [
    "2019, 2, 28",
    50,
  ],
  Array [
    "2019, 3, 31",
    0,
  ],
]

我这样做的方式:

const array = [dates, monthlyTopUp];
const data = array.reduce(
  (dates, topUp) => topUp.map((v, i) => (dates[i] || []).concat(v)), []
);
console.log(data)

标签: javascriptarrays

解决方案


你可以简单地这样做:

var arr1 = ["2019, 1, 31",  "2019, 2, 28",  "2019, 3, 31"];
var arr2 = [0, 50, 0];

var result = [];

for(var i = 0; i < arr1.length; i++){
    result.push({'x':arr1[i], 'y':arr2[i]});
}

console.log(result);

推荐阅读