javascript - 如何使用 forEach 将嵌套数组转换为对象?
问题描述
我可以使用 for 循环来实现这一点,但我不知道如何使用 forEach 来做同样的事情。
例如:
var input = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
调用该函数应导致:
{
make : 'Ford',
model : 'Mustang',
year : 1964
}
解决方案
我们可以使用 forEach 和Array 解构来实现这一点
var input = [
["make", "Ford"],
["model", "Mustang"],
["year", 1964],
];
const result = {};
input.forEach(([prop, value]) => {
result[prop] = value;
});
/*--------- OR --(withour array destructuring)-------------
input.forEach(internalArr => {
result[internalArr[0]] = internalArr[1];
});
*/
console.log(result);
您也可以使用Array.prototype.reduce来实现这一点。Array.prototype.reduce 是完成这项工作的正确工具。
var input = [
["make", "Ford"],
["model", "Mustang"],
["year", 1964],
];
const result = input.reduce((acc, curr) => {
const [prop, value] = curr;
acc[prop] = value;
return acc;
}, {});
console.log(result);
推荐阅读
- python - 页面未找到错误,即使我在 url 代码中有该页面
- python - 不在任何地方使用网格仍然会在 tkinter 中出现错误“不能在 .frame2 内使用几何管理器包,该包已经有网格管理的从属”
- linux - Linux中的虚拟内存和虚拟地址
- css - CSS层次结构问题
- c++ - 在线程执行期间更新变量和杀死线程
- powershell - 将 PowerShell 快捷方式复制到 Program Files,repath -file 参数魔术
- android - Tensorflow.lite 模型在 Android 应用程序中产生错误(不同)结果?
- javascript - 在 JavaScript 中向 Date 对象添加天数无法正常工作
- python - 通过 Pyspark (Python) 上的内部连接和过滤条件连接两个数据帧
- python - Python:为什么下次我使用 \t 而不是空格字符时,单词会转到下一次?