You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何计算数组指定索引区间的和并将结果存入新数组?

解决方案

首先明确需求:遍历start和end数组的每一对索引,计算main数组中从start[i]到end[i](包含两端)的元素和,最后把所有结果存入新数组。

方法1:基础循环切片求和

直接遍历每一组起始、结束索引,利用Python数组切片的特性(注意切片是左闭右开,所以要把end[i]+1作为切片右边界),然后求和:

start = [0, 1, 0]
end = [1, 5, 5]
main = [1, 2, 3, 4, 5, 6]

result = []
for s, e in zip(start, end):
    # 切片main[s:e+1]取到从s到e的所有元素
    sum_val = sum(main[s:e+1])
    result.append(sum_val)

print(result)  # 输出: [3, 20, 21]

方法2:前缀和优化(适合大数组场景)

如果main数组规模很大,或者需要多次计算区间和,前缀和可以把单次求和的时间复杂度降到O(1),效率更高:

start = [0, 1, 0]
end = [1, 5, 5]
main = [1, 2, 3, 4, 5, 6]

# 构建前缀和数组:prefix[0] = 0,prefix[i] = main[0]+...+main[i-1]
prefix = [0] * (len(main) + 1)
for i in range(len(main)):
    prefix[i+1] = prefix[i] + main[i]

result = []
for s, e in zip(start, end):
    # 区间s到e的和 = prefix[e+1] - prefix[s]
    sum_val = prefix[e+1] - prefix[s]
    result.append(sum_val)

print(result)  # 输出: [3, 20, 21]

两种方法都能得到预期结果,基础法写法简单适合小数据量;前缀和法则更适合频繁计算区间和的场景。

内容的提问来源于stack exchange,提问作者Spade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:26:16