これはオブジェクトの配列です。
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 ガイド。