zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    14_java之变量|参数|返回值|修饰符
    NYOJ 202 红黑树 (二叉树)
    NYOJ 138 找球号(二) (哈希)
    NYOJ 136 等式 (哈希)
    NYOJ 133 子序列 (离散化)
    NYOJ 129 树的判定 (并查集)
    NYOJ 117 求逆序数 (树状数组)
    NYOJ 93 汉诺塔 (数学)
    HDU 2050 折线分割平面 (数学)
    天梯赛L2-008 最长对称子串 (字符串处理)
  • 原文地址:https://www.cnblogs.com/yangstar90/p/7121800.html
Copyright © 2011-2022 走看看