2016-07-29 4 views
0

maps1とlist1という名前の2つのマップがあり、オブジェクトを比較するにはどうすればよいですか? {hi, hello}, {a, b}:MAP1は{hi , hello}, {a, b}, {c, d} が含まれており、リスト1は[hi, a]が含まれている場合、私はそれがマップに値を追加するために知ってJavaScriptを使って2つのマップを比較し、1つのマップにキーを追加する

、コードが

map1[anykey] = value; 

を書かれて、私は最終的にこのような何かに似ているMAP2を作りたいです。とにかくこれは可能ですか?

+1

あなたは上記の「マップ」と言うとき、私は」あなたが "物体"を意味すると思っています。同様に、あなたが上記の "リスト"と言うとき、私はあなたが "配列"を意味すると思っています。 –

+0

* "map1には{{hi、hello}、{a、b}、{c、}}が含まれていれば、 d} '" * - 実際には有効なJSオブジェクト形式ではありません。 {[hi: "hello"}、{a: "b"}、{c: "d"}] '(つまり、' maps1'はオブジェクトの配列ですか? – nnnnnn

+0

ご迷惑をおかけして申し訳ありませんが、@nnnnnnは何を言っているのですか? –

答えて

2

だけで、リスト配列をループし、新しい空白マップオブジェクトを作成し、名前がそれである任意のプロパティをコピー:

// Create the blank object 
var newObject = Object.create(null); // Or just {} if you prefer 

// Loop through the array 
list.forEach(function(name) { 
    // Does the original object have a property by this name? 
    if (name in originalObject) { 
     // Yes, copy its value over 
     newObject[name] = originalObject[name]; 
    } 
}); 
関連する問題