javascript - 用 filter 和 reduce 求 1 到 1000 之间 3 的倍数之和
问题描述
var list = [];
for (var i = 0; i < 1000; ++i) list.push(i);
var result = list.filter(element => element % 3 == 0);
list.reduce((accumulator, value) => accumulator + value);
console.log(result);
到目前为止,这是我的代码,我需要在结果对象中的一行中获取所有内容,但是当我运行代码时它不会添加元素,它只运行过滤器部分而不是减少。我怎样才能让它两者兼得?
解决方案
您忽略了 reduce 方法的结果。同filter
,reduce
返回一个值:
var list = [];
for (var i = 0; i < 1000; ++i) list.push(i);
var result = list
.filter(element => element % 3 == 0)
.reduce((accumulator, value) => accumulator + value);
console.log(result); //166833
推荐阅读
- java - Java 根据 REST 调用显示/隐藏对象字段
- reactjs - 从反应组件创建纯 Web 组件
- binary-search-tree - 如果在 BST 中插入的值应插入左子树或右子树,如何打印
- ruby-on-rails - Ruby on Rails:在控制器的实例中包含参数
- apache-spark - 检查一列是否与pyspark中的groupby连续
- android-studio - 在 Android Studio 的设备文件资源管理器中搜索文件名
- javascript - Chrome '不允许加载本地资源'
- javascript - 如何模拟对 Mapbox 的点击
- ansible - ansible角色目录中文件和模板之间的差异
- github - 使用github操作时是否可以使用静态IP