2017-05-04 7 views
-1

の二つの配列を濾過し値を1つから別のものにコピーするforループを使ってこれを作成しました:= [...] ARR2 = [...]</p> <p>今私はそれのIDをベースと一致オブジェクトを検索したいオブジェクト ARR1のアレイに私が持っているオブジェクト

for (let newCampaignState of data) { 
      for (let oldCampaignState of this.campaigns) { 
       if (oldCampaignState.id === newCampaignState.id) { 
        oldCampaignState.name = newCampaignState.name; 
       } 
      } 
     } 

もっと機能的なプログラミングを使ってどうすればいいですか?

+0

可能な重複[2つのJavaScriptでの配列と非重複するアイテムをマージする方法](のhttp:/ /stackoverflow.com/questions/1584370/how-to-merge-two-arrays-in-javascript-and-de-duplicate-items) – Erazihel

答えて

0

あなたは、フィルタのfuction使用することができます。

コードを

var arr1 = [{ 
 
    name: 'category1', 
 
    id: '1' 
 
}, { 
 
    name: 'category3', 
 
    id: '2' 
 
}, { 
 
    name: 'category2', 
 
    id: '2' 
 
}]; 
 

 
var arr2 = [{ 
 
    name: 'category2', 
 
    id: '5' 
 
}, { 
 
    name: 'category2', 
 
    id: '1' 
 
}, { 
 
    name: 'category2', 
 
    id: '2' 
 
}]; 
 

 

 
let filtered = []; 
 

 
arr1.filter(function(newData) { 
 
    return arr2.filter(function(oldData) { 
 
     if (newData.id === oldData.id && newData.name === oldData.name) { 
 
     filtered.push({ 
 
     'id': newData.id, 
 
     'name': newData.name 
 
     }) 
 
    } 
 
    }) 
 
}); 
 

 
document.body.innerHTML = ""; 
 
document.body.appendChild(document.createTextNode(JSON.stringify(filtered, null, 4)));
body { 
 
    white-space: pre; 
 
    font-family: monospace; 
 
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>

関連する問題