gpt4 book ai didi

javascript - 有没有更好的方法在 JavaScript 中对数组项进行部分求和?

转载 作者:行者123 更新时间:2023-12-01 11:35:40 26 4
gpt4 key购买 nike

我想知道是否有更好的方法来为数组的部分和生成性能更好的解决方案。

给定一个数组说 x = [ 0, 1, 2, 3, 4, 5 ] ,我生成了项目的子数组,然后计算每个数组的总和,得到:

[ 0, 1, 3, 6, 10, 15 ]

所以完整的代码是:
x.map((y,i)=>x.filter((t,j)=>j<=i))
.map(ii=>ii.reduce((x,y)=>x+y,0))

我想知道平面 map 或其他一些数组方法是否会有不需要扩展每个子数组的解决方案。

最佳答案

很多,通过保持运行总数:

function* partialSums(iterable) {
let s = 0;

for (const x of iterable) {
s += x;
yield s;
}
}

const x = [0, 1, 2, 3, 4, 5];
console.log(Array.from(partialSums(x)).join(', '));


线性时间,在线。 (您也可以直接生成一个数组;在下面展开。)

const partialSums = arr => {
let s = 0;
return arr.map(x => s += x);
};

const x = [0, 1, 2, 3, 4, 5];
console.log(partialSums(x).join(', '));

关于javascript - 有没有更好的方法在 JavaScript 中对数组项进行部分求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56519255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com