【个人笔记】数组分组

前言

用到了数组的分组方法,之前查询过最新的ES版本里面Array.prototype.groupBy(), 似乎暂时无法使用
所以干脆学了一下reduce写出一个自用版本


直接上源码:

newObj = this.MyData.reduce((acc, item) => { // acc 前置, item 后置
 	if (acc[item.targetID]) { // 如果前一个条件存在,说明可以分进同一组
	acc[item.targetID].push(item); // 往前一个条件组push内容
	} else { // 第一次分组创造条件或与前一次不同
	acc[item.targetID] = [item]; // 创建新数组,扔进该条件的内容
   }
   return acc;
   }, {}); // acc = {}

简化(转载dalao,阅读性不太好):

newObj = this.MyData.reduce((acc,item)=>{
	...arr, // 解构前一个
	[item.targetID]: [...(acc[item.targetID] ?? []), item], // 前一个存在相同条件则解构放入,然后放入当前
},{});

总结

希望groupBy() 赶紧出来呜呜。。菜鸟玩不来太难的东西

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值