2016-04-06 13 views
-1

内の各オブジェクトにプロパティを追加します。私は、配列内の各オブジェクトにプロパティを追加しようとしている配列

var capitals = [{ 
    country: "What's the capital of Ecuador?", 
    choices: ["Quito", "Caracas", "Panama", "Loja"], 
    corAnswer: 0 
}, { 
    country: "What is the capital of China?", 
    choices: ["Shanghai", "Beijing", "Ghangzou", "Hong Kong"], 
    corAnswer: 0 
}]; 

はなるはずです。

var capitals = [{ 
     country: "What's the capital of Ecuador?", 
     choices: ["Quito", "Caracas", "Panama", "Loja"], 
     corAnswer: 0, 
     global: true 
    }, { 
     country: "What is the capital of China?", 
     choices: ["Shanghai", "Beijing", "Ghangzou", "Hong Kong"], 
     corAnswer: 0, 
     global: true 
    }]; 

配列は、複数のオブジェクトを含めることができます。どのような機能が必要ですか?

答えて

6

あなたはforEachの使い方に慣れていない場合、あなたはループのため使用して同じ仕事をすることができます

capitals.forEach(function(itm){ 
itm.global = true; 
}); 

、この文脈でforEachを使用する必要があります。

for(var i=0,len=capitals.length;i<len;i++){ 
    capitals[i].global = true; 
} 
+0

を使用することができ、私はその意志オブジェクト –

+1

@VladimirStarkovの元の配列を変化させないために '.map'を使用することをお勧めしたいです不要にクローンを作成する。このコンテキストは 'map'を必要としません、私は信じています。 –

+0

OPは文脈について何も言わなかった、 'map'を使って' forEach'の暗黙のデータフローではなく明示的なデータフローを提供しました –

-1

レガシーブラウザをサポートする必要がない場合は、あなたがArray.prototype.map

+0

質問に答えようとしなかったために下降しました。良い答えは、この質問の文脈でその関数をどのように使用するかを示します。 – adamdport

0
var capitals = [{ 
    country: "What's the capital of Ecuador?", 
    choices: ["Quito", "Caracas", "Panama", "Loja"], 
    corAnswer: 0 
}, { 
    country: "What is the capital of China?", 
    choices: ["Shanghai", "Beijing", "Ghangzou", "Hong Kong"], 
    corAnswer: 0 
}]; 
for(i in capitals) { 
    capitals[i].global = true; 
} 
console.log(capitals) 
+0

'for..in'を配列に使用すると、プロトタイプチェーンの終わりに達するまで、列挙可能なプロパティを反復処理するので、奇妙な結果をもたらします。 –

関連する問題