js简单数组分类计算(两个循环搞定)

先看图:(我需要根据集装尺寸和类型来统计数量)

效果:比较简单,两个循环就可以搞定

 

代码实现:

 

 1 let tempArr = [];
 2                 for (let i in containerList) {
 3                     let list = containerList[i];
 4                     if (!(list.containerSize && list.containerType)) {// 如果 20GP
 5                         continue
 6                     }else {
 7                         let compare = {type:list.containerSize+'\''+list.containerType}//作比较的对象 (因为我需要这种格式,你也可以自定义格式)
 8                         if (tempArr.length==0) {//这段代码必须要写
 9                             let num = Number(list.containerCount);
10                             let obj = {
11                                 type:list.containerSize+'\''+list.containerType,
12                                 total:num
13                             }
14                             tempArr.push(obj)
15                         }else {
16                             let flag = true;
17                             for (let j in tempArr) {//这个循环只做一个操作,有相同类型的就进行统计
18                                 if (tempArr[j]["type"] == compare.type) {
19                                     tempArr[j]["total"] += Number(list.containerCount)
20                                     flag = false;//已经统计过的,就不要再重复了
21                                     break;
22                                 }
23                             }
24                             if (flag) {//如果没有这种类型的,就push进去
25                                 let num = Number(list.containerCount);
26                                 var obj = {
27                                     type:list.containerSize+'\''+list.containerType,
28                                     total:num
29                                 }
30                                 tempArr.push(obj)
31                             }
32                         }
33                     }
34                 }

 

 

 



 
posted @ 2020-04-10 14:56  星期7  阅读(1075)  评论(0编辑  收藏  举报