javascript - Eloquent Javascript 第 5 章练习 1

标签 javascript

挑战在于采用一个简单的数组:

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/

相关文章:

javascript - Plotly.js 图表中显示的数据错误

javascript - jQuery 将 page-break-inside in 更改为 break-inside

javascript - Cordova 白名单插件手动检测阻止的导航(事件)

javascript - 项目导入 Chrome+Codio 时未加载库

javascript - 字幕格式有什么问题?(Video.js)

javascript - 使用一个空的 while 循环来递增一个值可以吗?

javascript - 如何使用多个文本字符串条件从数组中过滤掉多个对象

javascript - 尽管使用了 PreventDefault(),但 Ajax 表单仍会重定向

javascript - jQuery 模态高度响应

javascript - 关闭弹出窗口时停止视频