Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 如何使用forEach将嵌套数组转换为对象?_Javascript_Arrays_Foreach_Nested - Fatal编程技术网

Javascript 如何使用forEach将嵌套数组转换为对象?

Javascript 如何使用forEach将嵌套数组转换为对象?,javascript,arrays,foreach,nested,Javascript,Arrays,Foreach,Nested,我可以使用for循环来实现这一点,但我不知道如何使用forEach来实现这一点 例如: var输入=[['make','Ford'],['model','Mustang'],['year',1964]] 调用该函数应导致: { make : 'Ford', model : 'Mustang', year : 1964 } 我们可以使用forEach和 var输入=[ [“制造”、“福特”], [“模型”、“野马”], [“年”,1964年], ]; const result={}

我可以使用for循环来实现这一点,但我不知道如何使用forEach来实现这一点

例如:
var输入=[['make','Ford'],['model','Mustang'],['year',1964]]
调用该函数应导致:

{
  make : 'Ford',
  model : 'Mustang',
  year : 1964
}

我们可以使用forEach和

var输入=[
[“制造”、“福特”],
[“模型”、“野马”],
[“年”,1964年],
];
const result={};
input.forEach(([prop,value])=>{
结果[prop]=值;
});
/*---------或者--(通过我们的阵列分解)-------------
input.forEach(internalArr=>{
结果[internalArr[0]]=internalArr[1];
});
*/

控制台日志(结果)
您可以对目标对象进行闭包,并使用
convert
返回的函数迭代数组

const
convert=target=>([key,value])=>target[key]=value,
输入=['make','Ford',['model','Mustang',['year',1964]],
输出={};
input.forEach(convert(output));

控制台日志(输出)为什么您仅限于
forEach
?是标准副本。如果您的答案与此处的答案相同(即使用
reduce
),请不要回答此问题。此问题询问如何使用
forEach
。使用数组作为参数进行调用。我们使用
reduce
和其他解决方案复制了许多“更好的选项”。这个问题需要使用
forEach
@hereticsmonkey使用forEach添加解决方案,我会说
Array.prototype.reduce
不是正确的工具。它和其他循环构造没有什么区别,真的。@appleapple如果你能解释一下,我很乐意,为什么
Array.prototype.reduce
不是正确的工具。也许有什么我不知道的。这样我可以从你那里学到新东西。☺☺☺@这就是为什么我要强调这一点。我的意思是,与其他循环构造相比,它没有真正的好处。