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

使用 map 和 reduce 提取对象数组中的 id 并组成新数组

在开发过程中,经常需要对 API 返回的数据进行处理,例如从对象数组中提取某些字段,并将它们组成新的数组。这里我们将介绍如何通过 JavaScript 的 mapreduce 方法来完成这一需求,并深入比较这两者的用法与适用场景。

需求:提取 id 字段组成新数组

假设我们有如下数据结构:

const res = {data: [{ id: 1, name: 'Alice' },{ id: 2, name: 'Bob' },{ id: 3, name: 'Charlie' }]
}

我们的目标是从 res.data 中提取每个对象的 id 字段,将它们组成一个新的数组,最终得到结果:

[1, 2, 3]

使用 map 实现需求

map 方法用于遍历数组中的每个元素,并对每个元素执行相同的操作,生成一个新数组。它的典型应用场景是逐个处理元素,创建新数组

代码示例
const ids = res.data.map(item => item.id)
console.log(ids) // 输出: [1, 2, 3]
解析
  1. map 方法会遍历 res.data 中的每个对象。
  2. 每次遍历时,item => item.id 会将对象的 id 提取出来,形成一个包含 id 的新数组。
优点
  • 简洁明了,代码可读性高。
  • 专为创建新数组而设计,适用于提取、格式化或转换数组的场景。

使用 reduce 实现需求

reduce 方法用于对数组执行累积操作,它可以生成一个最终的单一值(可以是数组、对象等)。它常用于聚合数据或进行复杂的数据处理

代码示例
const ids = res.data.reduce((accumulator, item) => {accumulator.push(item.id) // 将id推入累积数组return accumulator         // 返回更新后的累积数组
}, []) // 初始化累积值为空数组 []console.log(ids) // 输出: [1, 2, 3]
解析
  1. reduce 初始化一个空数组 [] 作为 accumulator 的初始值。
  2. 在每次遍历中,将当前元素的 id 推入到 accumulator 数组中。
  3. 最终 reduce 返回的 accumulator 数组即为目标数组 [1, 2, 3]
优点
  • 灵活性高,支持更复杂的聚合操作。
  • 适用于需要累计或合并数据的情况。
http://www.lryc.cn/news/477283.html

相关文章:

  • Zero-Shot Relational Learning for Multimodal Knowledge Graphs
  • AUTOSAR COM 模块的主要功能导读以及示例
  • VMware下Centos7虚拟机数据盘/data目录(非lvm)不停机热扩容实操
  • 易盾增强版滑块识别/易盾识别/滑块识别/增强版滑块识别/易盾滑块本地识别
  • DMRl-Former用于工业过程预测建模和关键样本分析的数据模式相关可解释Transformer网络
  • 向量模型Jina Embedding: 从v1到v3论文笔记
  • Spring学习笔记(一)
  • Java编程基础
  • C++【string类,模拟实现string类】
  • Jupyter lab 打开时默认使用 Notebook 而不是浏览器
  • 【linux】ubunda repo是什么
  • 【MySQL】深层理解索引及特性(重点)--下(12)
  • 无人机声学侦测算法详解!
  • git 提交仓库
  • 基于大语言模型(LLM)自主Agent 智能体综述
  • 使用命令行管理 Windows 环境变量
  • AUTODL配置百度网盘数据传输
  • LeetCode46. 全排列(2024秋季每日一题 57)
  • SpringBoot新闻稿件管理系统:架构与实现
  • MinIO讲解和java应用案例示范
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第1套 区块链系统设计与运维部分
  • yaml文件编写
  • TOEIC 词汇专题:娱乐休闲篇
  • 驱动TFT-1.44寸屏(ST7735)显示器
  • 鸿蒙HarmonyOS NEXT一多适配技术方案
  • golang 中map使用的一些坑
  • cordova 离线打包Android -Linux
  • 【python】OpenCV—findContours(4.3)
  • 前端通过nginx部署一个本地服务的方法
  • Linux:防火墙和selinux对服务的影响