javascript - 为什么reduce函数不输出数组中的项目?
问题描述
我正在从教程中学习 ES6,在玩代码时,我发现了一些我不理解的东西。下面的代码输出“3”。
var primaryColors = [
{ color: 'red' },
{ color: 'yellow' },
{ color: 'blue' },
];
var newColors = [];
primaryColors.reduce(function(color, primaryColor){
return newColors.push(primaryColor.color);
}, []);
为什么 return 语句返回“堆栈”中的数据数?
解决方案
为什么reduce函数不输出数组中的项目?
正如 Nenad Vracar 所说,因为push
返回数组中的项目数,并reduce
返回回调返回的最后一个值。
var newColors = primaryColors.map(function(primaryColor) {
return primaryColor.color;
});
var primaryColors = [
{ color: 'red' },
{ color: 'yellow' },
{ color: 'blue' },
];
var newColors = primaryColors.map(function(primaryColor) {
return primaryColor.color;
});
console.log(newColors);
或使用 ES2015箭头功能:
var newColors = primaryColors.map(primaryColor => primaryColor.color);
var primaryColors = [
{ color: 'red' },
{ color: 'yellow' },
{ color: 'blue' },
];
var newColors = primaryColors.map(primaryColor => primaryColor.color);
console.log(newColors);
如果我们在做 ES2015,我们可以加入解构:
var newColors = primaryColors.map(({color}) => color);
var primaryColors = [
{ color: 'red' },
{ color: 'yellow' },
{ color: 'blue' },
];
var newColors = primaryColors.map(({color}) => color);
console.log(newColors);
推荐阅读
- python - 使用自定义 pdf 求解具有随机变量的 ODE
- javascript - 带有鼠标和自定义右键的选择器
- python - 2 人骰子游戏,其中偶数总得分和奇数总失分 NEA 任务计算机科学
- python - 使用 map reduce 找到最小值
- gdb - 使用带有 GDB 的汇编程序进行调试
- ios - 如何删除 UIScrollView 在子视图之间放置的随机空白?
- javascript - 使用正则表达式检查 CSS 选择器
- android - 是否可以在flutter应用程序关闭时通过平台通道从android后台服务向flutter端发送消息
- php - 同时执行多个请求
- javascript - 将变量页面加载到 div