2011-10-22 76 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個val嗎? – 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

相關問題