2011-10-22 3 views
7

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

3倍のラボと4倍のバリューがあることは知っていますか? – xanatos

+0

はい、私は知っている、その唯一のここに誤って..私に知らせるために感謝 –

答えて

22

で おかげであなたは最初のオブジェクトをインスタンス化する必要はありませんしてください。最も簡単な方法は次のとおりです。

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 Guideを読むことをお勧めします。

関連する問題