2016-08-15 3 views
-2

私は動的リストから項目を選択して作成された配列を持っている:配列の値を使用して、オブジェクトのキーを見つけることが

[{id: 1, name: "Param1"}, {id: 2, name: "Param2"}, {id: 3, name: "Param3"}, {id: 4, name: "Param4"}] 

[2, 4] 

私はまた、オブジェクトの配列を持っています

私が行う必要があるのは、最初の配列の値を使って、2番目の配列のオブジェクトのIDとのマッチングを行い、それらのオブジェクトを返すことです。これで

ヘルプは非常にお時間を

おかげでいただければ幸いです

+1

forループを使用してください。これは非常に前向きです。あなたはこれを試みましたか? – Liam

答えて

1

あなたは、高速検索を可能にしSetへの最初の配列をオンして、アレイfilter法を適用し、このES6コードを、使用することができます特にこの目的のために意図:

var select = [2, 4]; 
 
var data = [{id: 1, name: "Param1"}, {id: 2, name: "Param2"}, 
 
      {id: 3, name: "Param3"}, {id: 4, name: "Param4"}] 
 

 
var selectSet = new Set(select); 
 
var result = data.filter(obj => selectSet.has(obj.id)); 
 

 
console.log(result);

+0

これは決して試してみません。 Lessensは学んだ。 – Sky

1

あなただけのリアムのコメントとしてforループを使用することができ、またはあなたがこのようなarrayfilter方法を使用することができます

var keys = [2, 4]; 
var objs = [{id: 1, name: "Param1"}, {id: 2, name: "Param2"}, {id: 3, name: "Param3"}, {id: 4, name: "Param4"}]; 

function filterById(obj) { 
    return keys.indexOf(obj.id) != -1; 
} 
var newArr = objs.filter(filterById); 

newArrあなたが望む結果です。

関連する問題