我想要每个单独的返回值从reduce()函数,而不是总数
I want each individual return value from the reduce() function rather than the total
previousValue currentValue index array return value
first call 0 1 1 [0, 1, 2, 3, 4] 1
second call 1 2 2 [0, 1, 2, 3, 4] 3
third call 3 3 3 [0, 1, 2, 3, 4] 6
fourth call 6 4 4 [0, 1, 2, 3, 4] 10
我想要数组中的1,3,6,10而不是返回的总10。返回每个调用
可以将返回值压入数组,如下所示。它违背了函数式编程,因为它会使results
产生副作用。但它确实符合你的需要。
var array = [0, 1, 2, 3, 4];
var results = [];
array.reduce(function(previousValue, currentValue) {
var newValue = previousValue + currentValue;
results.push(newValue);
return newValue;
});
// result is 1,3,6,10
alert(results);
不要使用reduce。对数组切片,移动一个值以开始一个小计,然后使用map.
var arr = [0, 1, 2, 3, 4], output = arr.slice(), subtotal = output.shift()
output = output.map(function(elem) { return subtotal += elem })
// output is [1, 3, 6, 10]
Edit -实际上,这可以很好地与reduce一起工作,甚至比上面更简洁:
var arr = [0, 1, 2, 3, 4]
arr.reduce(function(a, b, ndx) { return a.length ? a.concat(a[ndx - 2] + b) : [a + b]})
// returns [1, 3, 6, 10]
相关文章:
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 如何使jQuery中的悬停函数单独应用于数据库映像
- “单独列搜索”上的Datatables setinterval函数
- 使用AJAX在单独的文件中调用php函数
- 我将此代码移动到一个单独的函数中,它停止工作,为什么
- 如何在单独的文件中调用函数 js.
- 从单独的类调用活动函数
- window.load上单独的javascript文件中的引用函数
- 此JavaScript函数可以单独使用,但不能与其他JavaScript函数一起使用
- Chained Promise给出了未定义的函数错误,但我可以单独执行这些函数
- 从两个单独的函数创建 JQuery 悬停
- Javascript:类构造函数基础 - 在单独的方法中定义属性
- 添加混合 javascript 函数,使内容淡入列内的另一个内容/使其适用于两个单独的列
- 在一个函数中使用来自两个单独 JSON 文件的数据
- 等待 AJAX,然后再继续执行单独的函数
- AngularJS - '控制器不是函数:单独的控制器文件
- 使用 addEventListener 在 JavaScript 中设置单独的函数参数以具有唯一的 ID
- 将函数作为参数在单独的函数中传递
- 将构造函数从单独的文件加载到 Chrome 扩展程序选项页面
- java脚本中的多个函数单独工作,但不能在一个脚本中工作