2016-04-06 15 views
0

JavaScriptでは、JSONオブジェクトの配列があります。配列内のすべてのJSONオブジェクトに属性をプッシュ

var myArr = [{'attr1':1, 'attr2':2}, {'attr1':3, 'attr2':4}, {'attr1':5, 'attr2':6}] 

この配列のすべてのJSON OBJECTSに別の属性 'attr3'を追加したいとします。 myArr [x] .attr3 = 'val'でループ構造を使用せずにこれを達成する方法は?

私の希望する最終結果はです。

[{'attr1':1, 'attr2':2, 'attr3':'val'}, {'attr1':3, 'attr2':4, 'attr3':'val'}, {'attr1':5, 'attr2':6, 'attr3':'val'}] 
+0

ループ構造は何ですか? –

+2

これをループなしで行うことはできません。 forEach()のような配列関数を使用しても、暗黙のループが要素を反復します。また、表示されているコードにはJSONはありません。「JSONオブジェクト」ではなく「オブジェクト」だけです。 – nnnnnn

答えて

2

また、配列内のすべての要素を編集するためのArray#map()を使用することができます。

var myArr = [{ 'attr1': 1, 'attr2': 2 }, { 'attr1': 3, 'attr2': 4 }, { 'attr1': 5, 'attr2': 6 }]; 
 

 
myArr = myArr.map(function(e) { 
 
    e.attr3 = 'val'; 
 
    return e; 
 
}); 
 

 
document.write("<pre>" + JSON.stringify(myArr, 0, 4) + "</pre>");

1

Array#forEach()を使用して配列を反復することができます。

var myArr = [{ 'attr1': 1, 'attr2': 2 }, { 'attr1': 3, 'attr2': 4 }, { 'attr1': 5, 'attr2': 6 }]; 
 

 
myArr.forEach(function (a) { 
 
    a.attr3 = 'val'; 
 
}); 
 
document.write("<pre>" + JSON.stringify(myArr, 0, 4) + "</pre>");

関連する問題