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 }
欢迎转载,请注明出处