挑战在于采用一个简单的数组:
var arrays = [[1,2,3],[4,5],[6]];
然后使用 reduce/concat 创建一个包含所有值的数组并记录到控制台,即 [1,2,3,4,5,6] 所以我生成了:
console.log(arrays.reduce(function(flat, current) {
return flat.concat(current);
}));
完全有效,但在检查他们的解决方案时,他们有一点不同:
console.log(arrays.reduce(function(flat, current) {
return flat.concat(current);
}, []));
reduce 函数中的 [ ] 参数是做什么用的,是我遗漏它的问题吗?
最佳答案
初始值。
区别出现在两种情况下:
如果
arrays
是空数组,您的版本将会崩溃。他们不会。如果
arrays
包含单个数组,您将获得该实例,但他们将其复制到一个新数组中。
关于javascript - Eloquent Javascript 第 5 章练习 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262460/