找回密码
 立即注册

QQ登录

只需一步,快速开始

妄想社成员活字格认证
银牌会员   /  发表于:2024-6-8 12:57:18
11#
感谢大佬开发,今天刚好也做了一个类似的需求,
[
{"印刷厂":"GHDW00000008","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":9775},
{"印刷厂":"GHDW00000008","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":6556},
{"印刷厂":"GHDW00000008","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":7856},
{"印刷厂":"GHDW00000007","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":7856},
{"印刷厂":"GHDW00000007","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":7856},
{"印刷厂":"GHDW00000007","材料名称":"BOPP薄膜2","厚度":1.7,"宽度":46,"米数":7856}
]

对上面的数据,根据印刷厂、材料名称、厚度、宽度这几个属性,汇总米数

代码
  1. const data = [
  2.   {"印刷厂":"GHDW00000008","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":9775},
  3.   {"印刷厂":"GHDW00000008","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":6556},
  4.   {"印刷厂":"GHDW00000008","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":7856},
  5.   {"印刷厂":"GHDW00000007","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":7856},
  6.   {"印刷厂":"GHDW00000007","材料名称":"BOPP薄膜","厚度":1.7,"宽度":46,"米数":7856},
  7.   {"印刷厂":"GHDW00000007","材料名称":"BOPP薄膜2","厚度":1.7,"宽度":46,"米数":7856}
  8. ];

  9. const summarizedData = data.reduce((accumulator, currentItem) => {
  10.   const key = `${currentItem.印刷厂}-${currentItem.材料名称}-${currentItem.厚度}-${currentItem.宽度}`;
  11.   const existingItem = accumulator.find(item => item.key === key);
  12.   
  13.   if (existingItem) {
  14.     existingItem.米数 += currentItem.米数;
  15.   } else {
  16.     accumulator.push({
  17.       印刷厂: currentItem.印刷厂,
  18.       材料名称: currentItem.材料名称,
  19.       厚度: currentItem.厚度,
  20.       宽度: currentItem.宽度,
  21.       米数: currentItem.米数,
  22.       key // Helper key for grouping, won't be part of the final output
  23.     });
  24.   }
  25.   
  26.   return accumulator;
  27. }, []);

  28. // Remove the helper 'key' property from each object in the result array
  29. const cleanedData = summarizedData.map(item => {
  30.   delete item.key;
  31.   return item;
  32. });

  33. console.log(cleanedData);
复制代码

回复 使用道具 举报
小萝卜David
金牌服务用户   /  发表于:2024-6-8 13:01:37
12#
妄想社成员 发表于 2024-6-8 12:57
感谢大佬开发,今天刚好也做了一个类似的需求,
[
{"印刷厂":"GHDW00000008","材料名称":"BOPP薄膜","厚 ...

感觉走远了。
回复 使用道具 举报
KinShing
中级会员   /  发表于:2024-6-9 00:15:43
13#
感谢分享
回复 使用道具 举报
赛龙周
银牌会员   /  发表于:2024-6-9 05:15:19
14#
感谢分享
用对象工具插件也可以的
回复 使用道具 举报
小萝卜David
金牌服务用户   /  发表于:2024-6-9 08:07:43
15#
赛龙周 发表于 2024-6-9 05:15
感谢分享
用对象工具插件也可以的

贴图学习学习。
回复 使用道具 举报
赛龙周
银牌会员   /  发表于:2024-6-9 18:05:20
16#

mock 模拟了10000条数据,年龄随机18-60

image.png113024291.png
数组操作的select方法从对象中取出age数组
image.png617299499.png
用sum对age数组求和
image.png669113769.png
回复 使用道具 举报
陈城
初级会员   /  发表于:2024-6-9 23:06:19
17#
厉害,学习一下
回复 使用道具 举报
lizeming27
金牌服务用户   /  发表于:2024-6-11 18:33:35
18#
和循环比这个快, 那和统计字段比呢? 哪个会更快一些?
回复 使用道具 举报
爱上网络
高级会员   /  发表于:2024-6-12 11:27:57
19#
好东西
回复 使用道具 举报
恒美恒美
金牌服务用户   /  发表于:2024-6-12 14:59:18
20#
学习学习,谢谢大佬分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部