我正在Chrome控制台上测试方法的原型,并获得有关Array.prototype.reduce()的意外结果
例如,下面的示例
let a = [["a",1],["b",1],["c",1]];
let result = a.reduce((acc, e) => acc[e[0]]=e[1], {});
Run Code Online (Sandbox Code Playgroud)
我期望得到的结果是
{
"a": 1,
"b": 1,
"c": 1
}
Run Code Online (Sandbox Code Playgroud)
但我得到的值是1
您还需要在每次迭代中返回累加器.
let a = [["a",1],["c",1],["d",1]];
let result = a.reduce((acc, e) => (acc[e[0]]=e[1], acc), {});
console.log(result)Run Code Online (Sandbox Code Playgroud)
您还可以在第二个参数上使用解构赋值来获取每个数组的第一个和第二个元素.
let a = [["a",1],["c",1],["d",1]];
let result = a.reduce((acc, [a, b]) => (acc[a] = b, acc), {});
console.log(result)Run Code Online (Sandbox Code Playgroud)