当前位置:首页 > 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
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现拷贝

js实现拷贝

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

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…