在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于數(shù)據(jù)轉(zhuǎn)化的問題

關(guān)于數(shù)據(jù)轉(zhuǎn)化的問題

let fundList = [

{
    name: 'a',
    id: 0,
},
{
    name: 'b',
    id: 1,
}

];
let beforeData =[

{
    'approved_amount_sum': 44200,
    'date': '2018-08-07',
    'a': 44200,
    'a_rate': 1,
},
{
    'approved_amount_sum': null,
    date: '2018-08-08',
},

]
let data = [

{
    'approved_amount_sum': 44200,
    'date': '2018-08-07',
    'a': 44200,
    'a_rate': 1,
    'b': null,
    'b_rate': null,
},
{
    'approved_amount_sum': null,
    'date': '2018-08-08',
    'a': null,
    'a_rate': null,
    'b': null,
    'b_rate': null,
},

]
需要根據(jù)fundList里面的name跟beforeData進(jìn)行匹配,beforeData中沒有的進(jìn)行添加,同時(shí)添加name_rate的變量, 想問問路過的大神這個(gè)怎么寫

回答
編輯回答
別傷我

let fundList = [

  {
    name: 'a',
    id: 0,
  },
  {
    name: 'b',
    id: 1,
  }
];

let beforeData =[

  {
    'approved_amount_sum': 44200,
    'date': '2018-08-07',
    'a': 44200,
    'a_rate': 1,
  },
  {
    'approved_amount_sum': null,
    date: '2018-08-08',
  },
];

for(let eachData of beforeData){
  for(let f of fundList){
    if(!eachData.hasOwnProperty(f.name)){
       eachData[f.name] = null;
    }
    if(!eachData.hasOwnProperty(f.name+"_rate")){
      eachData[f.name+"_rate"] = null;
    }
  }
}
console.log(beforeData)

output:

[{
  a: 44200,
  a_rate: 1,
  approved_amount_sum: 44200,
  b: null,
  b_rate: null,
  date: "2018-08-07"
},  {
  a: null,
  a_rate: null,
  approved_amount_sum: null,
  b: null,
  b_rate: null,
  date: "2018-08-08"
}]
2018年4月10日 02:35
編輯回答
幼梔
let fundObj = fundList.reduce((t,c)=>{
    t[c.name] = null;
    t[c.name + '_rate'] = null;
    return t;
}, {});

let afterData = beforeData.map(o => Object.assign({}, fundObj, o));
console.log(afterData);
2018年9月2日 17:27