Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组转换为包含数组项作为对象键的对象数组的最佳方法是什么?_Javascript_Arrays_Object - Fatal编程技术网

Javascript 将数组转换为包含数组项作为对象键的对象数组的最佳方法是什么?

Javascript 将数组转换为包含数组项作为对象键的对象数组的最佳方法是什么?,javascript,arrays,object,Javascript,Arrays,Object,考虑以下两个阵列: 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&qu

考虑以下两个阵列:

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


“可以使用forEach()或与reduce/map原型结合使用?”-尝试一下->感谢您的快速回答,您能提供一个示例或解决方案吗?您阅读了上面提到的链接吗?不要征求我们的意见(“最佳方式是什么”)。测试上面提到的选项,找到一个适合你的,你就找到了适合你的“最佳方式”。这正是我想要的,但我不知道如何前进。。。非常感谢。如果这个答案对你有帮助,一定要把它标记为被接受的答案。