当前位置:首页 > JavaScript

js实现sum

2026-04-06 21:42:17JavaScript

JavaScript 实现 sum 函数

在 JavaScript 中实现 sum 函数可以通过多种方式完成,以下是几种常见的方法:

基础实现

function sum(...numbers) {
  return numbers.reduce((acc, curr) => acc + curr, 0);
}

此方法使用 ES6 的剩余参数语法和 reduce 方法,能够处理任意数量的参数并返回它们的总和。

js实现sum

处理数组输入

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 错误。

js实现sum

递归实现

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 项目通常推荐使用第一种或第二种方案。

标签: jssum
分享给朋友:

相关文章

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js实现左右滑动

js实现左右滑动

实现左右滑动的 JavaScript 方法 监听触摸事件 通过 touchstart、touchmove 和 touchend 事件来检测用户的手势操作。记录触摸的起始位置和移动距离,判断滑动方向。…