JavaScript でオブジェクトの配列に動的に値を追加するにはどうすればよいでしょうか? 質問する

JavaScript でオブジェクトの配列に動的に値を追加するにはどうすればよいでしょうか? 質問する

これはオブジェクトの配列です。

var data = [
      {"label" : "1", "value" : 12},
      {"label" : "1", "value" : 12},
      {"label" : "1", "value" : 12},
      {"label" : "1", "value" : 12}
    ];

これらに動的に値を追加するにはどうすればよいですか? 以下のコードを試しましたが、成功しませんでした:

var lab =["1","2","3", "4"];
var val = [42,55,51,22];
var data = new Array();
for(var i=0; i<4; i++){
   data[i].label = lab[i];
   data[i].value = val[i];    
}

ベストアンサー1

まずオブジェクトをインスタンス化する必要があります。最も簡単な方法は次のとおりです。

var lab =["1","2","3"];
var val = [42,55,51,22];
var data = [];
for(var i=0; i<4; i++)  {
    data.push({label: lab[i], value: val[i]});
}

または、簡潔さは劣りますが、元のコードに近い別の方法もあります。

for(var i=0; i<4; i++)  {
   data[i] = {};              // creates a new object
   data[i].label = lab[i];
   data[i].value = val[i];    
}

array()新しい配列は作成されません (その関数を定義していない限り)。 またはArray()new Array()あるいは のいずれかです[]

ぜひ読んでみてくださいMDN JavaScript ガイド

おすすめ記事