js之对象处理

数据拼接一:

原始数据为对象

{
    0grade: ""
  0home: "萍钢四切(边部钩痕)"
  0price: "3200"
  0productName: "普板"
  0remark: ""
  1grade: ""
  1home: "萍钢四切(边部钩痕)"
  1price: "3201"
  1productName: "普板"
  1remark: ""
    3grade: ""
  3home: "萍钢四切(边部钩痕)"
  3price: "3201"
  3productName: "普板"
  3remark: ""
}
View Code

 要求数据为数组

[
    {
        grade: "",
        home:"萍钢四切(边部钩痕)",
        price: "3021",
        productName: "普板",
        remark: "",
    },{
        grade: "",
        home:"萍钢四切(边部钩痕)",
        price: "3021",
        productName: "普板",
        remark: "",
    },
    {
        grade: "",
        home:"萍钢四切(边部钩痕)",
        price: "3021",
        productName: "普板",
        remark: "",
    } 
]
View Code

解决方案一:

getTableArry (data) {
  let arry = [];
  let obj = {};
    for(let key in data) {
    let curKey = parseInt(key.replace(/[^0-9]+/g, '')); // 获取key里的数字标记
    let keyName =key.replace(/[^a-zA-Z]+/g, ''); // 获取 key里的字段名称
    if(!isNaN(curKey)){// 过滤掉不包含数字标记的
        obj = {
         'productName':data[`${curKey}productName`],
         'spec':data[`${curKey}spec`],
         'grade':data[`${curKey}grade`],
         'home':data[`${curKey}home`],
         'weight':data[`${curKey}weight`],
         'warehouse':data[`${curKey}warehouse`],
         'price':data[`${curKey}price`],
         'remark':data[`${curKey}remark`],
         }
        if(`${curKey}` in arry) {// 过滤掉已经追加到arry的obj

        }else {
          arry.push(obj)
        }
      }
      
  }
   return arry;
}
View Code

 解决方案二:

ps: obj 对象拷贝,需放在里面,每次重新初始化

  getTableArry (data, o) {
    let arry = [];

      for(let key in data) {
      let curKey = parseInt(key.replace(/[^0-9]+/g, '')); // 获取key里的数字标记
      let keyName =key.replace(/[^a-zA-Z]+/g, ''); // 获取 key里的字段名称
      if(!isNaN(curKey)){// 过滤掉不包含数字标记的
          if(`${curKey}` in arry) {// 过滤掉已经追加到arry的obj
  
          }else {
              let obj = {};
                for (let i in o){
                  obj[i] = data[`${curKey}${i}`]
                } 
            arry.push(obj)  
          }
        }
        
    }
      return arry;
  }
View Code
原文地址:https://www.cnblogs.com/yangstar90/p/7121800.html