繁体   English   中英

在javascript中转换Array对象(nodejs + mysql + sequelize)

[英]Conversion of Array objects in javascript (nodejs+ mysql + sequelize)

这是我的json对象:

   {
    excels:
       [ { field1: '123456789',
           field2: 'Mohamed',
           field3: 'Sameer'},

         { field1: '111111111',
           field2: 'Hameed',
           field3: 'Basha'},

         { field1: '222222222',
           field2: 'Mohamed',
           field3: 'Basha'} ],

      header:
       { '0': 'gsm',
         '1': 'firstName',
         '2': 'lastName'
    }

}

如何将其转换为:

[{gsm:123456789;firstName:'Mohamed';lastName:'Sameer'},{gsm:111111111;firstName:'Hameed';lastName:'Basha'},{gsm:222222222;firstName:'Mohamed';lastName:'Basha'}]

是否有可能获得这种类型的转化?

帮帮我,我是新手!

我认为使用lodash.mapKeys将更加清晰:

const mapKeys = require('lodash.mapkeys');

const arr = obj.excels.map(
  (excel) => {
    const keys = Object.values(obj.header)
    return mapKeys(excel, (value, key) => keys.shift())
  }
);

console.log(arr);

 let obj = { excels: [ { field1: '123456789', field2: 'Mohamed', field3: 'Sameer'}, { field1: '111111111', field2: 'Hameed', field3: 'Basha'}, { field1: '222222222', field2: 'Mohamed', field3: 'Basha'} ], header: { '0': 'gsm', '1': 'firstName', '2': 'lastName', '3': 'street'} } let targetObj = []; let keysLength = Object.keys(obj["excels"][0]).length; for(i=0;i< keysLength;i++) { targetObj[i] = {}; let key = obj["header"][i] targetObj[i]['gsm'] = obj["excels"][i]["field1"]; targetObj[i]['firstName'] = obj["excels"][i]["field2"]; targetObj[i]['lastName'] = obj["excels"][i]["field3"]; } console.log(targetObj) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM