js实现sum
JavaScript 实现 sum 函数
在 JavaScript 中实现 sum 函数可以通过多种方式完成,以下是几种常见的方法:
基础实现
function sum(...numbers) {
return numbers.reduce((acc, curr) => acc + curr, 0);
}
此方法使用 ES6 的剩余参数语法和 reduce 方法,能够处理任意数量的参数并返回它们的总和。
处理数组输入
function sumArray(arr) {
return arr.reduce((total, num) => total + num, 0);
}
如果输入是一个数组,可以使用此方法直接对数组元素求和。
处理混合类型
function safeSum(...items) {
return items.reduce((acc, item) => {
const num = Number(item);
return acc + (isNaN(num) ? 0 : num);
}, 0);
}
此版本会尝试将每个参数转换为数字,非数字值会被视为 0,避免 NaN 错误。
递归实现
function recursiveSum(arr, index = 0) {
return index < arr.length
? arr[index] + recursiveSum(arr, index + 1)
: 0;
}
递归方式适合学习算法概念,但对于大型数组可能导致栈溢出。
性能优化版本
function fastSum(arr) {
let total = 0;
for (let i = 0; i < arr.length; i++) {
total += arr[i];
}
return total;
}
对于超大型数组,传统的 for 循环通常比 reduce 有更好的性能表现。

使用场景示例
// 基本使用
console.log(sum(1, 2, 3)); // 输出 6
// 数组版本
console.log(sumArray([1, 2, 3])); // 输出 6
// 安全版本
console.log(safeSum(1, '2', 'a')); // 输出 3
选择哪种实现取决于具体需求,包括输入类型、性能要求和错误处理需求等。现代 JavaScript 项目通常推荐使用第一种或第二种方案。






