谁能向我解释一下这段代码是如何工作的?我在数组中查找了 reduce
和 concat
函数,我理解这些函数,但我不明白这段代码最初是如何工作的:
var arrays = [[1, 2, 3], [4, 5], [6]];
console.log(arrays.reduce(function(flat, current) {
return flat.concat(current);
}, []));
// → [1, 2, 3, 4, 5, 6]
最佳答案
事实上,这是 .reduce()
的错误使用。对于这项工作,您不需要初始数组。只需之前的 (p
) 和当前的 (c
) 交手就可以做到。如;
var arrays = [[1, 2, 3], [4, 5], [6]];
console.log(arrays.reduce((p,c) => p.concat(c)));
注意:当返回值的类型与数组项不同时,Initial 很方便。然而,在这种情况下,您正在处理数组并返回一个数组,该数组呈现初始冗余的使用。
关于Javascript 数组高阶函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630371/