当前位置:首页 > JavaScript

js实现sum方法

2026-03-15 18:32:20JavaScript

实现基础的数组求和

定义一个简单的sum函数,对数组元素进行求和。假设数组中的元素均为数字类型:

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

处理非数字类型元素

扩展功能以处理包含非数字元素的数组,通过Number()进行类型转换:

js实现sum方法

function sum(arr) {
  return arr.reduce((acc, current) => acc + Number(current) || 0, 0);
}

支持多维数组求和

递归处理多维数组的情况,对嵌套数组进行展开求和:

js实现sum方法

function sum(arr) {
  return arr.reduce((acc, current) => {
    const value = Array.isArray(current) ? sum(current) : Number(current);
    return acc + (value || 0);
  }, 0);
}

添加参数校验

增加输入参数的类型检查,确保传入的是数组:

function sum(arr) {
  if (!Array.isArray(arr)) {
    throw new TypeError('Expected an array as input');
  }
  return arr.reduce((acc, current) => {
    const value = Array.isArray(current) ? sum(current) : Number(current);
    return acc + (value || 0);
  }, 0);
}

性能优化版本

针对大型数组进行优化,避免递归导致的堆栈溢出问题:

function sum(arr) {
  let total = 0;
  const stack = [...arr];

  while (stack.length) {
    const current = stack.pop();
    if (Array.isArray(current)) {
      stack.push(...current);
    } else {
      total += Number(current) || 0;
    }
  }

  return total;
}

标签: 方法js
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…