当前位置:首页 > JavaScript

js reduce实现

2026-04-07 04:04:31JavaScript

使用 reduce 实现数组求和

reduce 方法可以对数组中的每个元素执行一个回调函数,最终返回一个累加结果。以下是求和的示例代码:

js reduce实现

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);
console.log(sum); // 输出: 15
  • accumulator 是累加器,初始值为 0(通过第二个参数指定)。
  • currentValue 是当前遍历的数组元素。

使用 reduce 实现数组去重

通过 reduce 可以轻松实现数组去重,利用对象的键唯一性:

js reduce实现

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((acc, current) => {
  if (!acc.includes(current)) {
    acc.push(current);
  }
  return acc;
}, []);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
  • 初始值为空数组 [],每次检查当前元素是否已存在于累加器中。

使用 reduce 实现对象属性分组

reduce 可以将数组中的对象按属性分组,生成一个键值对对象:

const people = [
  { name: 'Alice', age: 21 },
  { name: 'Bob', age: 21 },
  { name: 'Charlie', age: 22 }
];
const groupedByAge = people.reduce((acc, person) => {
  const key = person.age;
  if (!acc[key]) {
    acc[key] = [];
  }
  acc[key].push(person);
  return acc;
}, {});
console.log(groupedByAge);
  • 输出结果按 age 分组,例如 { 21: [{...}, {...}], 22: [{...}] }

使用 reduce 实现扁平化数组

reduce 可以将多维数组扁平化为一维数组:

const nestedArray = [[1, 2], [3, 4], [5]];
const flatArray = nestedArray.reduce((acc, current) => {
  return acc.concat(current);
}, []);
console.log(flatArray); // 输出: [1, 2, 3, 4, 5]
  • 初始值为空数组 [],通过 concat 合并子数组。

注意事项

  1. 初始值:如果未提供初始值,reduce 会以数组的第一个元素作为初始值,可能导致空数组报错。
  2. 性能:对于复杂操作,reduce 可能不如原生方法(如 filtermap)直观,需权衡可读性。
  3. 链式调用reduce 可以与其他数组方法(如 filter)结合使用,实现更复杂的逻辑。

标签: jsreduce
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…