2016-10-26 6 views
4

私はオブジェクトのグループを 'resData'という1つの配列に格納しています。もう1つの配列の 'approvedIds'があります。承認されたすべてのIDが含まれています。ここでは、これらの2つの配列を一致させ、 'approveStatus:approve "のような' resData '配列に新しいキーを追加したいと思います。どのようにjavascriptでこれを行うには?JavaScriptを使用してオブジェクトを挿入するには?

すべてのデータの、IDの配列を承認

var resData = [ 
    { 
     firstName:"Jhon", 
     lastName:"adam", 
     emailId:"[email protected]", 
     id:"01" 
    }, 
    { 
     firstName:"Kyle", 
     lastName:"Miller", 
     emailId:"[email protected]", 
     id:"02" 
    }, 
    { 
     firstName:"Jhonathan", 
     lastName:"adam", 
     emailId:"[email protected]", 
     id:"03" 
    }, 
    { 
     firstName:"Lewis", 
     lastName:"harber", 
     emailId:"[email protected]", 
     id:"04" 
    } 
]; 

var approvedIds = ['01', '03']; 

私の出力は

var resData = [ 
     { 
      firstName:"Jhon", 
      lastName:"adam", 
      emailId:"[email protected]", 
      id:"01", 
      approveStatus:'approved' 
     }, 
     { 
      firstName:"Kyle", 
      lastName:"Miller", 
      emailId:"[email protected]", 
      id:"02" 
     }, 
     { 
      firstName:"Jhonathan", 
      lastName:"adam", 
      emailId:"[email protected]", 
      id:"03", 
      approveStatus:'approved' 
     }, 
     { 
      firstName:"Lewis", 
      lastName:"harber", 
      emailId:"[email protected]", 
      id:"04" 
     } 
    ]; 

答えて

4

あなたはこれを試すことができ、このようになります。より機能的であり、元のオブジェクトを変更しないES6配列機能を使用forEachindexOf機能

var resData = [ 
 
    { 
 
     firstName:"Jhon", 
 
     lastName:"adam", 
 
     emailId:"[email protected]", 
 
     id:"01" 
 
    }, 
 
    { 
 
     firstName:"Kyle", 
 
     lastName:"Miller", 
 
     emailId:"[email protected]", 
 
     id:"02" 
 
    }, 
 
    { 
 
     firstName:"Jhonathan", 
 
     lastName:"adam", 
 
     emailId:"[email protected]", 
 
     id:"03" 
 
    }, 
 
    { 
 
     firstName:"Lewis", 
 
     lastName:"harber", 
 
     emailId:"[email protected]", 
 
     id:"04" 
 
    } 
 
]; 
 

 

 
var approvedIds = ['01', '03']; 
 

 
resData.forEach(item => { 
 
    if(approvedIds.indexOf(item.id) !== -1){ 
 
     item.approvedStatus = 'approved'; 
 
    } 
 
}); 
 

 
console.log(resData);

2

を使用:

var resData = [ 
 
    { 
 
     firstName:"Jhon", 
 
     lastName:"adam", 
 
     emailId:"[email protected]", 
 
     id:"01" 
 
    }, 
 
    { 
 
     firstName:"Kyle", 
 
     lastName:"Miller", 
 
     emailId:"[email protected]", 
 
     id:"02" 
 
    }, 
 
    { 
 
     firstName:"Jhonathan", 
 
     lastName:"adam", 
 
     emailId:"[email protected]", 
 
     id:"03" 
 
    }, 
 
    { 
 
     firstName:"Lewis", 
 
     lastName:"harber", 
 
     emailId:"[email protected]", 
 
     id:"04" 
 
    } 
 
]; 
 

 
var approvedIds = ['01', '03']; 
 

 
//Solution: 
 
var newData = resData 
 
       .filter(rd => approvedIds.indexOf(rd.id) >= 0) 
 
       .map(rd => Object.assign({}, rd, {approvedStatus: "approved"})); 
 

 
console.log(newData, resData);

関連する問題