首页 > 解决方案 > 用 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);

到目前为止,这是我的代码,我需要在结果对象中的一行中获取所有内容,但是当我运行代码时它不会添加元素,它只运行过滤器部分而不是减少。我怎样才能让它两者兼得?

标签: javascript

解决方案


您忽略了 reduce 方法的结果。同filterreduce返回一个值:

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

推荐阅读