【React】Lodash---groupBy() 分组

在这里插入图片描述

例子

_.groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }
 
// The `_.property` iteratee shorthand.
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }

思路分析 来源

定义一个名为groupBy的方法,通过扩展Array原型来实现。该方法接受一个函数fn作为参数,并返回一个对象。== 该对象的键是将数组中的元素通过fn函数处理后得到的结果==,值是符合该键的元素组成的数组。

具体地说,代码首先创建一个空对象map。然后使用forEach方法遍历调用groupBy方法的数组,对于每个元素,通过fn函数获取一个键key然后从map对象中取出键为key的值,如果不存在则初始化为空数组。将当前元素添加到该数组中,然后再将更新后的数组赋值给map对象的键key。

最后,返回map对象,该对象包含了按照fn函数分组后的结果。

遍历数组一次,生成一个{key1:元素1},{key2:元素2},,,,若key一样,则合并,最后,返回的是一个 以回调函数的结果为key值的对象

我的应用

 // 二次处理
  const monthBill = useMemo(()=>{
    return _.groupBy(billLsit,(item)=>dayjs(item.date).format('YYYY|MM'))
  },[billLsit]) //useMemo的作用是缓存数据

解释:对每次遍历的元素进行格式化处理,并以处理结果作为Key,对数组billLsit进行分组
console.log(_.groupBy(billLsit,(item)=>dayjs(item.date).format('YYYY|MM')));
结果如下:
分组后的数据:
在这里插入图片描述
未分组的数据:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/707727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

同三维TT806-1 USB单路网络视频流/U盘采集卡

同三维TT806-1 USB单路网络视频流/U盘采集卡 (1路网络音视频信号或U盘直播推流器) 支持采集1路网络视频流或U盘音视频信号,USB输出到电脑 同时还可流推2个直播平台,可设置6组定时推流,有线网络 可录像到U盘,支持定时录像 一…

期末测试2--函数题---指针链表如何输出?

总结写代码时候遇到的问题 1.遍历指针链表 指针head在做for循环遍历的时候 for(head, head!NULL;head) head不能 for(head,head!NULL;headhead->next)-------正确的写法 int i; for(ihead;head!NULL;headhead->next) i 是 int 类型的&#x…

【思维导图工具】Xmind 2024安装教程+软件安装包下载

​XMind 2022是一款风靡全宇宙的思维导图和头脑暴炸软件,是全宇宙领先的“可视化思考”工具,每一个功能都能帮助你激发灵感、提高创造力。 XMind 2022为不同的使用场景提供多种可视化布局,让你的思维可以更清晰的结构化呈现,该软件…

【Linux】基础指令(一)

一、ls指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息 常见选项: -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d …

WinForm之TCP客户端通讯

目录 一 设计界面 二 后台代码 一 设计界面 二 后台代码 using System.Net.Sockets; using System.Text;namespace TCP网络客户端通讯 {public partial class Form1 : Form{public Form1(){InitializeComponent();}TcpClient tcpClient new TcpClient();private void conne…

【STM32进阶笔记】GPIO端口

前段时间由于其他原因,专栏暂停更新了较长一段时间,现在恢复更新,争取继续为大家创造有价值的内容,期待大家的订阅关注,欢迎互相学习交流。 在STM32速成笔记系列专栏中其实已经对GPIO的一些必要知识进行了介绍&#xf…

springboot项目中使用 @Lazy 注解懒加载解决循环依赖问题,以及 @Lazy 标注顺序

场景: Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name taskServiceImpl: Bean with name taskServiceImpl has been injected into other beans [groupServiceImpl] in its raw version as part…

Rust 实战丨绘制曼德博集

曼德博集 曼德博集其实是一个“没什么用”的发现。 曼德博集(Mandelbrot Set)是一种在复平面上形成独特且复杂图案的点的集合。这个集合是以数学家本华曼德博(Benoit Mandelbrot)的名字命名的,他在研究复杂结构和混沌…

C#|Maui|BootstrapBlazor|Bootstrap Blazor 组件库改模板 | Bootstrap Blazor 组件库改布局,该怎么改?

先copy一个项目下来:Bootstrap Blazor 组件库 一套基于 Bootstrap 和 Blazor 的企业级组件库 发现不是很满足我的需求,我要把右下角的admin移动到左边去,该怎么移动? 先改代码 点进去到Layout.razor 文档,改成如下&am…

CS5518芯片设计|替代GM8775设计方案|MIPI转LVDS芯片方案|DSI转LVDS芯片方案

CS5518支持常见的1920*1080分辨率的屏,支持视频格式为 FULL HD(1920 x 1200)。为MIPI DSI 转LVDS 双通道桥接芯片,实现将MIPI DSI信号转换为单/双通道 LVDS输出功能,MIPI 支持1/2/3/4 通道可选,支持 4Gbps 速率。LVDS …

探索新升级!在 ART-Pi Smart 体验 RT-Thread Smart v5.1.0

1.引言 RT-Thread Smart v5.1.0 已经正式发布。这一版本在内核和功能上做了大量的改进与增强。我们可以在ART-Pi Smart开发板尽情探索这一新版更完善更强大的RT-Thread Smart操作系统。ART-Pi Smart开发板搭载了米尔科技的i.MX6ULL核心板,硬件设计和制作由韦东山团队…

一文搞定Django学习

文章目录 一、Django项目1.安装django2.创建项目3.文件描述4.创建app5.测试 二、操作数据库1.安装mysqlclient2.setting.py文件中设置连接信息3.创建表操作(1)python manage.py makemigrations(2)python manage.py migrate 4.增删…

净化机应用领域广泛 美国是我国净化机主要出口国

净化机应用领域广泛 美国是我国净化机主要出口国 净化机,又称为空气清洁设备或空气清新机,是一种专门设计用于滤除或杀灭空气污染物、提升空气清洁度的装置。净化机具备高效的过滤功能,能够滤除空气中的悬浮微粒、细菌、病毒和花粉等污染物&a…

【Numpy】一文向您详细介绍 np.sqrt()

【Numpy】一文向您详细介绍 np.sqrt() 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕,曾…

WebSocket 详解--spring boot简单使用案例

一、什么是WebSocket WebSocket 是一种网络通信协议,专为在单个 TCP 连接上进行全双工通信而设计。WebSocket 允许客户端和服务器之间的消息能够实时双向传输。这与传统的 HTTP 请求-响应模式有很大的不同。 二、WebSocket 的关键特性 双向通信:WebSocke…

【Mars3d】config.json中的蓝色底图map.basemap = 2017代码实现

本身的地图效果: Mars3d的蓝色地图效果: 关键代码: basemaps: [{name: "高德电子",icon: "img/basemaps/gaode_vec.png",type: "gaode",layer: "vec",show: true,invertColor: true,filterColor: &q…

ARM32开发--IIC时钟案例

知不足而奋进 望远山而前行 目录 文章目录 前言 目标 内容 需求 开发流程 移植驱动 修改I2C实现 测试功能 总结 前言 在现代嵌入式系统开发中,移植外设驱动并测试其功能是一项常见的任务。本次学习的目标是掌握移植方法和测试方法,以实现对开…

电容式传感器的基本原理

电容式传感器由电容量可变的电容器和测量电路组成,其变量间的转换原理如图5—2所示。 图5—2电容式传感器变量间的转换关系 由电学可知,两个平行金属极板组成的电容器,如果不考虑其边缘效应,其电容为 Se——两个极板介质的介电常…

chrome浏览器设置--disable-web-security解决跨域

在开发人员于后台进行接口测试的时候,老是遇到跨域问题,这时前端总是会让后台添加跨域请求头来允许跨域请求,今天介绍一个简单的方法跨过这一步操作的设置。 –disable-web-security参数,禁用同源策略,利于开发人员本…

ARMxy赋能温室环境自动化调控

智慧农业正以其独特的魅力描绘着未来的轮廓。作为这一变革的中坚力量,ARMxy工业计算机凭借其高性能、低功耗及高度灵活性,正逐步成为智能温室控制、精准灌溉及作物生长监测领域的核心引擎。 智能温室的智慧大脑 位于某地的现代农业园区,一座…