2016-12-08 6 views
0

私はオブジェクトを持っています。動的に配列を作成し、次に作成した配列のプロパティに対応するキーと値のペアを含む別のオブジェクトを作成することができます。例えばJavascriptアレイとオブジェクトキーの組み合わせプロパティの検索

、私は以下の目的を持っている場合...

var churchMembers = { 
    John: '[email protected]', 
    Betty: '[email protected]', 
    Christopher: '[email protected]', 
    James: '[email protected]', 
    Deep: '[email protected]' 
}; 

と私は次の配列を作成:私は次の応答

var peopleList = { 
    John: '[email protected]', 
    Christopher: '[email protected]', 
    James: '[email protected]' 
}; 

右をしたい

var peopleComing = ['John', 'Christopher', 'James']; 

を今私はforループを使用しようとしているし、私がやっているのは、オブジェクトのプロパティw hichは私に何も与えていない。 Object.keysのルートを使用することは逆効果に見えますが、これにより簡単に正しい名前を除外することができます。ありがとう。 SIAP

答えて

1

Array#forEachを使用して名前のリストを繰り返し、各名前の電子メールを取得してpeopleListに追加することができます。あなたのコードを持っているタイプミスを無視

var peopleList = {}; 

peopleComing.forEach(function(name){ 
    peopleList[name] = churchMembers[name]; 
}); 
1

、以下のコードは、あなたが望むものでpeopleListを初期化することが可能であるべきです。

var churchMembers = { 
    John: "[email protected]" 
    Betty: "[email protected]", 
    Christopher: "[email protected]", 
    James: "[email protected]", 
    Deep: "[email protected]" 
}, 

peopleComing = ["John", "Christopher", "James"], 

peopleList = {}; 

for (var i = 0, j = peopleComing.length; i < j; i++) { 
    peopleList[peopleComing[i]] = churchMembers[peopleComing[i]]; 
} 
関連する問題