有一个我正在使用的练习,要求创建一个嵌套数组到对象中的函数。将嵌套数组转换为具有减少的对象
例输入:[['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]]
预期输出:{ make: 'Ford', model: 'Mustan', year: 1969 }
我尝试过写这样的:
function fromListToObject(array) {
let obj = {};
for (var i = 0; i < array.length; i++) {
obj[arr[i][0]] = arr[i][1];
}
}
但没有工作,所以我找到了另一个解决方案,它使用的降低:
function fromListToObject(array) {
return array.reduce(function(acc, curr) {
acc[curr[0]] = curr[1];
return acc;
}, {});
}
现在,我想我明白了减少如何工作,但从来没有真正搞乱它的对象,如何acc[curr[0]]
是否工作?它开始作为一个空的对象,但我很困惑,什么acc
是在第一次迭代之后。任何人都可以解释吗?
在此先感谢!
什么不适用于第一个?你有错误吗?如果不是,结果如何? –