JavaScript中如何合并具有相同ID的数组对象?

javascript中如何合并具有相同id的数组对象?

如何使用 javascript 将具有相同 id 的数组对象合并为一个对象

在 javascript 中,您可以通过将具有相同属性的对象分组并合并它们的非重复属性来执行此操作。

假设我们有以下数组:

const list = [  {    id: "202301",    jine: 23,    type: "晚餐",  },  {    id: "202301",    jine: 87.5,    type: "早餐",  },  {    id: "202301",    jine: 1065.5,    type: "中餐",  },  {    id: "202302",    jine: 10,    type: "晚餐",  },  {    id: "202302",    jine: 181.5,    type: "早餐",  },  {    id: "202302",    jine: 633.5,    type: "中餐",  },];

期望结果为:

立即学习“Java免费学习笔记(深入)”;

const list = [  {    id: "202301",    jine1: 87.5, // 早餐    jine2: 1065.5, // 中餐    jine3: 23, // 晚餐  },  {    id: "202302",    jine1: 181.5, // 早餐    jine2: 633.5, // 中餐    jine3: 10, // 晚餐  },];

解决方案

要实现此目的,我们使用以下步骤:

使用 object.entries() 将数组转换为对象键值对数组,其中 id 作为键。然后使用 object.groupby() 将对象键值对数组分组到具有相同 id 的对象中。最后,使用 map() 函数将每个组转换为具有相应类型 jine 属性的对象。

以下是如何实现的:

Object.entries(Object.groupBy(list, item => item.id))  .map(([k, v]) => ({     id: k,     jine1: v.find(e => e.type === '早餐')?.jine,     jine2: v.find(e => e.type === '中餐')?.jine,     jine3: v.find(e => e.type === '晚餐')?.jine   }))

以上就是JavaScript中如何合并具有相同ID的数组对象?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1498747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 20:43:43
下一篇 2025年12月19日 20:43:58

相关推荐

  • 如何用JavaScript合并数组中相同ID的对象并按指定格式输出?

    合并数组中的相同 id 对象 对于给定的数组列表,需要将具有相同 id 的对象合并到单个对象中,并按特定格式排列数据。以下是如何通过 javascript 代码实现这一操作: 首先,将列表转换为键值对的数组,其中 id 作为键,对象数组作为值: const keyvaluearray = objec…

    2025年12月19日
    000
  • 如何合并数组中ID相同的数据,并按type类型分别生成jine属性?

    如何将数组中 id 相同的数据合并为对象? 给定一个数组 list,其中每个元素都包含 id、jine 和 type 属性。要求将数组中 id 相同的数据合并为一个对象,新的对象应具有 id 及不同 type 对应的 jine 属性。 原数据: const list = [ { id: “20230…

    2025年12月19日
    000
  • JavaScript中console.log打印的IdentifierNode对象具体代表什么?

    console.log打印的identifiernode对象解析 在javascript中使用console.log打印复杂对象(如identifiernode)时,打印结果会显示键值对,其中一个key为”node”,其value是个对象,例如: node: Identifi…

    2025年12月19日
    000
  • TypeScript中如何根据路径约束参数并推断最终URL?

    ts 中根据第一个参数约束第二个参数并推断结果的函数 在 typescript 中,你想要实现一个能够根据第一个参数约束第二个参数,并推断出最终结果的函数。例如,你希望该函数可以合并路径和参数,根据路径约束所传的参数,最终拼接路径和参数得到最终的字符串。 最初的实现使用了泛型和条件类型,但存在一些问…

    2025年12月19日
    000
  • Vue3 如何访问 HashMap 中的值?

    vue3 中访问 hashmap 值的解决方案 在 vue3 中,读取后端传输的 hashmap 值时可能会遇到问题。本文将提供一个解决方案,帮助你轻松访问 hashmap 中的值。 示例代码中,从后端获取了一个包含 hashmap 的对象。但是,直接使用 commoditypagelist.val…

    2025年12月19日
    000
  • 如何检查 JavaScript 对象中是否存在键

    在 JavaScript 中,对象是最常用的数据结构之一。对象以键值对的形式存储数据集合,了解对象中是否存在特定键是一个常见的要求。幸运的是,提供了多种 JavaScript 检查对象中是否存在 key 的方法,每种方法适合不同的需求和场景。在本文中,我们将探讨几种检查对象中是否存在键的方法,重点介…

    2025年12月19日
    000
  • js如何存map

    JavaScript 提供了 Map 对象来存储键值对,它支持多种数据类型,提供了高效的查找和遍历功能,与传统对象相比更适合处理复杂数据。 如何在 JavaScript 中存储 Map JavaScript 中的 Map 对象提供了存储键值对的集合,它是一种更强大的数据结构,比传统的对象更适合处理复…

    2025年12月19日
    000
  • js如何删除hashmap

    如何使用 JavaScript 删除 HashMap? 1. 使用 delete 操作符删除单个键值对; 2. 使用 clear() 方法删除所有键值对; 3. 使用 forEach() 方法迭代并删除特定键值对; 4. 使用 filter() 方法创建不包含特定键值对的新 HashMap; 5. …

    好文分享 2025年12月19日
    000
  • js如何存超长的字符串

    JavaScript 超长字符串存储方法:拆分字符串为较小块并存储在数组中。使用 Blob 对象存储二进制数据,包括超长字符串。使用 IndexedDB 存储大量的键值对数据,包括超长字符串。使用 Web Storage API(localStorage 和 sessionStorage)存储超长字…

    2025年12月19日
    000
  • typescript常用的方法有哪些

    TypeScript 常用方法包括:Object.assign(): 复制或合并对象。Object.freeze(): 冻结对象使其不可更改。Object.keys(): 返回对象属性名称数组。Array.from(): 将可迭代对象转换为数组。Array.filter(): 筛选并返回满足条件的元…

    2025年12月19日
    000
  • 使用 Zod 和 Faker 构建用于生成模拟数据的 TypeScript 助手

    构建应用程序时,模拟数据对于测试、开发和原型设计非常宝贵。借助 zod 强大的模式验证和 faker 的数据生成功能,我们可以创建一个强大的助手来为任何 zod 模式生成真实的、符合模式的模拟数据。 介绍 在本指南中,我们将创建一个辅助函数generatemockdatafromschema,它接受…

    2025年12月19日
    000
  • 如何使用 JavaScript 将嵌套的 JSON 格式转换为标准的列表格式?

    使用 javascript 转换 json 格式 想要将提供给的 json 格式: { “family[0].familyname”: “第一个”, “family[0].sex”: “1”, “family[1].familyname”: “第二个”, “family[1].sex”: “1”,}…

    2025年12月19日
    000
  • 如何将 JSON 格式数据转换为列表格式?

    使用 javascript 转换 json 格式 问题:如何将以下 json 格式转换为列表格式? { “family[0].familyname”: “第一个”, “family[0].sex”: “1”, “family[1].familyname”: “第二个”, “family[1].sex…

    2025年12月19日
    000
  • JavaScript 对象方法示例

    javascript 对象方法示例。 object.keys(obj): 返回对象自己的可枚举属性名称(键)的数组。 const obj = { a: 1, b: 2, c: 3 };console.log(object.keys(obj));// output: [‘a’, ‘b’, ‘c’] o…

    2025年12月19日
    000
  • 使用 Javascript 从头开始​​构建反应式商店

    响应式编程是一种巧妙的方法,允许您创建动态反映数据更改的应用程序。它是 react 和 vue 等许多现代 javascript 框架背后的核心技术 – 它会根据用户操作或其他状态变化进行更新。理解反应性背后的内容可能感觉工作量太大,感觉就像框架所针对的“神奇”抽象之一。但是,如果您可以…

    2025年12月19日
    000
  • 了解 JavaScript 中的变量和数据类型

    javascript 是一种广泛用于 web 开发的动态编程语言。 javascript 的基本概念之一是理解变量和数据类型。本文将清楚地解释这些概念,帮助您轻松掌握它们。 什么是变量?变量就像保存数据值的容器。在 javascript 中,您可以在变量中存储不同类型的数据。要声明变量,可以使用关键…

    2025年12月19日
    000
  • 导出 Excel 文件乱码的原因是什么?

    导出 excel 乱码的缘由 今天,我在导出 Excel 功能时遇到乱码问题,输出的结果如下所示: [乱码截图] form.formName.submit() 和 selector().submit() 的区别 form.formName.submit() 和 selector().submit()…

    2025年12月19日
    000
  • XMLHttpRequest请求发送数据时,如何处理特殊字符”

    XMLHttpRequest请求发送数据的限制 在进行XMLHttpRequest请求时,发送的数据可能会受到限制。当发送的数据中包含特殊字符时,就有可能出现发送失败的情况。 根据提供的代码示例,当数据字符串中包含”键值对的形式,并以”&”符号进行分隔。 …

    2025年12月19日
    000
  • GET 请求参数:URL 路径还是请求头?

    get请求参数放置位置的影响 get请求中的参数可以放置在url路径后面或请求头(headers)中,两者接收方式不同。 url路径中的参数: 直接附加在url后面,以问号 (?) 分隔。例如: http://example.com/api/users?id=10 被视为url的一部分,由服务器处理…

    2025年12月19日
    000
  • 如何将包含动态键名的 JSON 字符串解析成键值对类型?

    关于一个动态 json 字符串的解析问题 问题 我们从后台获取到一个包含动态键名的 json 字符串,需要将其解析成一个 javascript 类型,该类型包含一个键值对,其中键是动态键名,值是键名对应的值。 问题示例 给定以下 json 字符串: [ { “name”: “2015年”, “sta…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信