将数组转换为对象数组的最佳方法是什么,包括将数组条目作为对象键



考虑以下两个数组:

var array=[
["2021-06-11", 100, 80, 70],
["2021-06-12", 101, 81, 71],
["2021-06-13", 102, 82, 72],
["2021-06-14", 103, 83, 73]]
var keyNames = ["date","a","b","c"];

目标:

var newArray = [{date:"2021-06-11",a:100,b:80,c:70},
{date:"2021-06-12",a:101,b:81,c:71},
{date:"2021-06-13",a:102,b:82,c:72},
{date:"2021-06-14",a:103,b:83,c:73}]

实现这一目标的最佳方式是什么?是否可以使用forEach((或与reduce/map原型组合来完成?

我试过var obj = Object.assign({}, array)但结果是索引作为密钥

任何帮助都将不胜感激!感谢您抽出时间!

可以使用map和forEach来完成。

let newArray = array.map((x) =>{ //map to convert the first array
let newObj = {};
let index =0;
keyNames.forEach((y) =>{ //forEach to loop through keynames
newObj[y] = x[index++];  
});
return newObj;
});

最新更新