js将list根据指定字段分组为map数组

文章介绍了一种在JavaScript中处理后端返回的list数据的方法,通过遍历并利用临时变量map来实现按特定字段分组。当遇到新的类型时,创建新的对象并添加到结果数组中;若类型已存在,则将当前项追加到对应的分组内。
摘要由CSDN通过智能技术生成

将list分组显示的需求,解决方法如下

	  // 后端返回数据list集合
	  let salesAllList = response.data;
	  // 临时记录根据某字段分组的临时键值对变量,用来记录是否已经存在该字段
      var map = {}
      // 存储处理数据完成后的 数组
      this.salesAllList = [];
      // 遍历list数据
      for(var i = 0; i < salesAllList.length; i++){
        // ii代表list中的某一项
        var ii = salesAllList[i];
        if(!map[ii.type]){	// 临时键值对变量中不存在此键
           // 将此数据以对象格式放到数组中{key : value}
          this.salesAllList.push({
            type: ii.type,
            salesAllList: [ii]
          });
          // 将未加入map的key放入,这样下次map[ii.type]就会返回true,map只用于此。
          map[ii.type] = ii;
        }else{   // 如果此键值已存在
          //遍历数组
          for(var j = 0; j < this.salesAllList.length; j++){
            // 数组中某一项数据
            var jj = this.salesAllList[j]; 
            // 如果数据中此key的值和该salesAllList[i].type的值相等
            if(jj.type == ii.type){
              // 把salesAllList[i]也放入该key的value中
              jj.salesAllList.push(ii);
              break;
            }
          }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值