当前位置:首页 > JavaScript

reduce实现js

2026-04-05 12:42:26JavaScript

使用 reduce 实现数组求和

reduce 可以对数组元素累加求和。初始值设为 0,回调函数将当前值累加到总和:

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((total, num) => total + num, 0);
console.log(sum); // 输出: 10

使用 reduce 实现数组扁平化

通过递归处理嵌套数组,reduce 可将多维数组扁平化为一维数组:

const nestedArray = [1, [2, [3, [4]]]];
const flatten = arr => 
  arr.reduce((flat, item) => 
    flat.concat(Array.isArray(item) ? flatten(item) : item), []);
console.log(flatten(nestedArray)); // 输出: [1, 2, 3, 4]

使用 reduce 实现分组统计

根据对象的属性分组,统计每组数量。示例按年龄分组:

const people = [
  { name: 'Alice', age: 21 },
  { name: 'Bob', age: 21 },
  { name: 'Charlie', age: 22 }
];
const groupByAge = people.reduce((acc, person) => {
  const key = person.age;
  acc[key] = (acc[key] || 0) + 1;
  return acc;
}, {});
console.log(groupByAge); // 输出: {21: 2, 22: 1}

使用 reduce 实现数组去重

通过检查元素是否已存在于累加器中,实现数组去重:

const duplicates = [1, 2, 2, 3, 4, 4];
const unique = duplicates.reduce((acc, item) => 
  acc.includes(item) ? acc : [...acc, item], []);
console.log(unique); // 输出: [1, 2, 3, 4]

使用 reduce 实现对象属性转换

将对象数组转换为以 id 为键的新对象:

reduce实现js

const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' }
];
const usersById = users.reduce((acc, user) => {
  acc[user.id] = user;
  return acc;
}, {});
console.log(usersById); 
// 输出: {1: {id: 1, name: 'Alice'}, 2: {id: 2, name: 'Bob'}}

注意事项

  • 始终指定 reduce 的初始值,避免空数组导致错误。
  • 复杂操作时,确保回调函数纯函数化,避免副作用。
  • 性能敏感场景需测试 reduce 与其他方法(如循环)的差异。

标签: reducejs
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现代码雨

js实现代码雨

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