当前位置: 首页 > news >正文

JavaScript reduce 方法详解

array.reduce((accumulator, currentValue, currentIndex, array) => {
// 处理逻辑
return accumulator;
}, initialValue);

  • accumulator (acc):累加器,存储上一次回调的返回值

  • currentValue (cur):当前正在处理的数组元素

  • currentIndex :当前元素的索引

  • array :原始数组

  • initialValue :初始值(可选)

  • 总是提供初始值,避免空数组报错

  • 适合将数组转换为其他数据结构

  • 简单数组操作优先使用 map 或 filter

  • 虽然 reduce 可以实现 map 、 filter 的功能,但应选择最适合的方法

  • 确保每次迭代都返回累加器值

  • 如果不提供初始值,数组第一个元素将作为初始值

  • 空数组调用 reduce 且没有初始值会报错

  • 回调函数必须有返回值

  • 适合用于需要遍历一次数组的场景

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 输出: 15

const fruits = [‘apple’, ‘banana’, ‘apple’, ‘orange’, ‘banana’, ‘apple’];
const count = fruits.reduce((acc, cur) => {
acc[cur] = (acc[cur] || 0) + 1;
return acc;
}, {});
console.log(count); // 输出: { apple: 3, banana: 2, orange: 1 }

const nestedArray = [[1, 2], [3, 4], [5, 6]];
const flatArray = nestedArray.reduce((acc, cur) => acc.concat(cur), []);
console.log(flatArray); // 输出: [1, 2, 3, 4, 5, 6]

const users = [
{ id: 1, name: ‘张三’ },
{ id: 2, name: ‘李四’ },
{ id: 3, name: ‘王五’ }
];
const userMap = users.reduce((acc, cur) => {
acc[cur.id] = cur;
return acc;
}, {});
console.log(userMap);

http://www.dtcms.com/a/108275.html

相关文章:

  • 视图函数的应用
  • 数据仓库项目启动与管理
  • App与Page构造器
  • vim的操作
  • Java面试31-MySQL如何解决幻读问题?
  • 【HTB】Linux-Shocker靶机渗透
  • 人工智能基础知识笔记七:随机变量的几种分布
  • Font Awesome 音/视频图标
  • 程序代码篇---Arm汇编语言
  • Laravel 中使用 JWT 作用户登录,身份认证
  • vue开始时间小于等于结束时间,且开始时间小于等于系统时间,时间格式:年月日时分
  • Python每日一题(13)
  • 【算法进阶详解】线段树应用
  • 洛谷题单2-P2433 【深基1-2】小学数学 N 合一-python-流程图重构
  • 脑影像分析软件推荐 | CONN
  • Django接入 免费的 AI 大模型——讯飞星火(2025年4月最新!!!)
  • 安装完 miniconda3 ,cmd无法执行 conda 命令
  • 接口测试(2)
  • PyTorch 深度学习实战(32):多模态学习与CLIP模型
  • 中级:Spring框架面试题全解析
  • Labview信号采集与多功能分析系统(可仿真)
  • Python基于Django的新生入学管理系统(附源码,文档说明)
  • 06-01-自考数据结构(20331)- 查找技术-静态查找
  • 【Linux系统篇】:Linux文件管理的“地图与指南针”--从文件描述符表到内核缓冲区
  • IDEA的基础快捷键
  • centos7强制升级docker
  • jupyter notebook笔记:下拉菜单中添加新的conda 环境
  • 人工智能在生物医药-新版ChatGPT-4o辅助一键生成机制图
  • 实战 | 餐厅点餐小程序技术解析:SpringBoot + UniApp 高效开发指南
  • c++柔性数组、友元、类模版