连续值的数组
对数组中的每个元素从左到右应用一个函数,并将结果存储在一个数组中,返回一个连续减少的值的数组。
- 使用
Array.prototype.reduce()
将给定的函数应用于给定的数组,存储每个新的结果。
const reduceSuccessive = (arr, fn, acc) =>
arr.reduce(
(res, val, i, arr) => (res.push(fn(res.slice(-1)[0], val, i, arr)), res),
[acc]
);
reduceSuccessive([1, 2, 3, 4, 5, 6], (acc, val) => acc + val, 0);
// [0, 1, 3, 6, 10, 15, 21]