欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

js 对象数组矩阵转置(行到列)练习

最编程 2024-03-16 21:08:43
...

 transformDatas = (tableRows) => {        if (!tableRows.length) return          console.log("tableRows ", tableRows)        let tansDatas = []        for(let i = 0; i < tableRows.length; i++){          let item = tableRows[i]          if(i===0){            let keys = Object.keys(item)            tansDatas.push(keys)          }                    let values = Object.values(item)          tansDatas.push(values)        }        console.log("tansDatas ", tansDatas)        //二维数组行转列        var newArray = tansDatas[0].map(function (col, i) {          return tansDatas.map(function (row) {            return row[i];          })        });        console.log("newArray", newArray)        //二维数组重新生成新的对象数组        let keyRow = newArray[5]//已行转列后,然后以其中任意一行作为新数组中每个对象的key        let tansformNewData = []        for(let j= 0;j< newArray.length;j++){          let obj = {}          for(let k=0;k<keyRow.length;k++){            obj[keyRow[k]+""] = newArray[j][k]          }          tansformNewData.push(obj)        }        console.log("tansformNewData", JSON.stringify(tansformNewData))        return tansformNewData      }      let tableRows = [        {"id":2,"createAt":1567055846000,"updateAt":1567055846000,"companyId":1,"frequency":"YEARLY","periodEnd":1567008000000,"netIncome":534,"depreciation":34,"adjustment":321,"changeAcc":563,"changeLiab":4566,"changeInv":33,"changeOther":98,"totalOpr":6778,"capitalExp":88,"investments":99,"otherInv":8,"totalInv":67,"dividePaid":664,"purchase":443,"netBorrow":2,"otherFinance":34,"totalFinance":56,"effectChange":null,"changeEqui":78},        {"id":5,"createAt":1567117746000,"updateAt":1567117746000,"companyId":1,"frequency":"YEARLY","periodEnd":1535558400000,"netIncome":53,"depreciation":3,"adjustment":2,"changeAcc":2,"changeLiab":3,"changeInv":235,"changeOther":435,"totalOpr":3,"capitalExp":34,"investments":34,"otherInv":34,"totalInv":53,"dividePaid":34,"purchase":34,"netBorrow":34,"otherFinance":34,"totalFinance":66,"effectChange":null,"changeEqui":66,}      ]      transformDatas(tableRows)