如何合并数组中ID相同的数据,并按type类型分别生成jine属性?

如何合并数组中id相同的数据,并按type类型分别生成jine属性?

如何将数组中 id 相同的数据合并为对象?

给定一个数组 list,其中每个元素都包含 id、jine 和 type 属性。要求将数组中 id 相同的数据合并为一个对象,新的对象应具有 id 及不同 type 对应的 jine 属性。

原数据:

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: "中餐"    }];

登录后复制

期望数据格式:

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

登录后复制

解决方案:

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   }))

登录后复制

解释:

使用 object.groupby() 函数将数组按 id 分组。该函数返回一个对象,其键为 id 值,值为具有该 id 的数组。使用 object.entries() 函数将分组后的对象转换为一个数组,其中每个元素是一个键值对。使用 map() 函数遍历键值对数组,并为每个键值对创建一个新对象。新对象包含一个 id 属性,以及三个 jine 属性(jine1、jine2 和 jine3),分别对应 早餐、中餐 和 晚餐 类型。使用 find() 函数在每个 type 数组中查找与给定 type 匹配的元素,并获取其 jine 值。

以上就是如何合并数组中ID相同的数据,并按type类型分别生成jine属性?的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2649023.html

(0)
上一篇 2025年3月7日 08:20:28
下一篇 2025年2月28日 03:25:46

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript 主要先进概念

    以下是对所有提到的 javascript 概念的解释,按主题组织: javascript — 动态客户端脚本 javascript 是一种在浏览器中运行的多功能编程语言,允许网站具有动态的交互式功能。它主要用于客户端任务,这意味着它由用户的…

    2025年3月7日
    200
  • 如何编写js

    如何编写 JavaScript?使用类似 C 语言的语法。数据类型包括字符串、数字、布尔值、数组和对象。使用 let 或 const 声明变量和常量。使用 if-else、switch-case 条件语句。使用 for、while、do-w…

    2025年3月7日
    200
  • js如何定义list

    JavaScript提供两种定义list的方式:使用数组定义有序元素集合,可通过索引访问元素。使用对象定义无序键值对集合,可通过属性名访问值。 JS如何定义list 在JavaScript中,有两种定义list的方式:数组和对象。 使用数组…

    2025年3月7日
    200
  • 如何获取js中的值

    在 JavaScript 中,获取值的常用方法有:变量访问:通过变量名访问变量值。对象属性访问:通过 . 或 [] 访问对象属性值。数组元素访问:通过 [] 访问数组元素值。DOM 元素属性获取:通过 getAttribute() 访问 H…

    2025年3月7日
    200
  • js如何缓存数据

    JavaScript 中缓存数据的 5 种主要方法:浏览器缓存:存储最近访问的资源的本地副本,减少加载时间。IndexedDB:一个用于创建和管理本地数据库的 API,提供了事务支持和索引。Web Storage:存储键值对,包括 loca…

    2025年3月7日
    200
  • js中如何创建一个对象

    在 JavaScript 中创建对象有两种主要方法:对象字面量和 new Object() 构造函数。对象属性用于存储键值对,可以通过点运算符或方括号访问;可以使用赋值运算符添加或修改属性,使用 delete 运算符删除属性。对象方法是存储…

    2025年3月7日
    200
  • js如何创建listing

    在 JavaScript 中,创建查询列表有三种方法:使用数组,适合存储有序元素列表。使用对象,适合存储非有序元素列表,键用于标识元素。使用 Map,适合存储键值对,键可以是任何类型的数据且查找检索元素高效。 在 JavaScript 中创…

    2025年3月7日
    200
  • 我的 React 之旅:第 18 天

    json 和数据操作 json (javascript 对象表示法) 是一种 轻量级数据格式,用于在服务器和 web 应用程序之间交换数据。它受到不同编程语言的广泛支持,是现代 web 开发的关键组件。 json 的主要特性:1.结构: 数…

    2025年3月7日
    200
  • 掌握 JavaScript 中的对象

    JavaScript 对象详解 JavaScript 对象是键值对的集合,值可以是数据(属性)或函数(方法)。 它在 JavaScript 中至关重要,因为几乎所有事物,包括数组、函数甚至其他对象,都是对象。 1. 对象创建方法 a. 对象…

    2025年3月7日
    200
  • 探索 JavaScript 中的面向对象编程 (OOP)

    JavaScript 面向对象编程 (OOP) 深入探索 发布日期:2024年12月17日 面向对象编程 (OOP) 是一种以对象为基础,模拟现实世界实体的编程范式。JavaScript 作为一门灵活的语言,凭借其原型继承、ES6 类以及现…

    2025年3月7日
    200

发表回复

登录后才能评论