数据处理——将对象处理成对象数组

130 阅读1分钟

数据处理——将对象处理成对象数组

后端数据结构为对象,在前端页面展示时需要遍历数组,按不同类型数据展示。所以需要将数据处理成data2的格式。

问题:在遍历中声明obj变量,每次循环都会初始化obj,所以控制台输出错误,格式为 {},{},{salary201:"38293.223"},{},{}....

分析:将声明obj变量,放到遍历之外,那筛选出的数据就会加入同一个obj中。即同类数据分类在一起。最后将4个obj添加入arr数组中,即可获取理想的数据格式。

getData(){
      let data={
        salary201:"38293.223",
        salary202:"38293.223",
        salary203:"38293.223",
        salary204:"38293.223",
        salary205:"38293.223",
        salaryLast201:"874368.4324",
        salaryLasty201:"93.223",
        salaryLast202:"874368.4324",
        salaryLasty202:"93.223",
        salaryLast203:"874368.4324",
        salaryLasty203:"93.223",
        salaryLast204:"874368.4324",
        salaryLasty204:"93.223",
        salaryLast205:"874368.4324",
        salaryLasty205:"93.223",
      }
      var arr = new Array();
  		//问题核心:将同类数据放到同一个obj中
      let obj1={}
      let obj2={}
      let obj3={}
      let obj4={}
      for(var key in data){
        if(key.indexOf('201')!=-1){
          obj1[key]=data[key]
        }else if(key.indexOf('202')!=-1||key.indexOf('203')!=-1){
          obj2[key]=data[key]
        }else if(key.indexOf('204')!=-1){
          obj3[key]=data[key]
        }else if(key.indexOf('205')!=-1){
          obj4[key]=data[key]
        }
      }
      arr.push(obj1)
      arr.push(obj2)
      arr.push(obj3)
      arr.push(obj4)
      console.log(arr)
      //需要的数据结构
      // let data2=[
      //   {
      //     salary201:"38293.223",
      //     salaryLast201:"874368.4324",
      //     salaryLasty201:"93.223",
      //   },
      //   {
      //     salary202:"38293.223",
      //     salaryLast202:"874368.4324",
      //     salaryLasty202:"93.223",
      //   }...
      //]
    },