使用slice和reduce或for循环可求数组i到j间元素和,前者代码简洁,后者性能更优。例如sumRange([1,2,3,4,5],1,3)返回9。

在JavaScript中,要求数组从索引 i 到 j(包含)之间的元素和,可以通过几种方式实现。下面介绍常用且清晰的方法。
使用 slice 和 reduce
先用 slice(i, j + 1) 截取从 i 到 j 的子数组,然后用 reduce 求和。
function sumRange(arr, i, j) {
return arr.slice(i, j + 1).reduce((sum, num) => sum + num, 0);
}
例如:
const arr = [1, 2, 3, 4, 5]; console.log(sumRange(arr, 1, 3)); // 输出:9 (2 + 3 + 4)
使用 for 循环(性能更好)
如果数组较大,直接用循环避免创建新数组,效率更高。
function sumRange(arr, i, j) {
let sum = 0;
for (let k = i; k <= j; k++) {
sum += arr[k];
}
return sum;
}
注意事项
确保索引有效,避免越界:
- 检查 i 和 j 是否在 0 到 arr.length - 1 范围内
- 确保 i
基本上就这些,根据场景选择简洁或高效的方式即可。










