2011-10-22 21 views
7

jest tablicą obiektów,jak dynamicznie dodawać wartości do tablicy obiektów w javascript?

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

jak mogę dodać do tych wartości dynamicznie? Próbowałem poniższy kod, ale bez powodzenia

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]; } 

ktoś proszę .. góry dzięki

+1

Wiesz, że istnieją 3 x laboratorium i 4x val? – xanatos

+0

tak, wiem, to tylko tutaj omyłkowo .. dzięki za poinformowanie mnie –

Odpowiedz

22

Musisz instancję obiektu jako pierwszy. Najprostszym sposobem jest:

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]}); 
} 

Albo inny, mniej zwięzły sposób, ale bliżej do oryginalnego kodu:

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

array() nie stworzy nową tablicę (o ile nie określono tę funkcję). Albo Array() lub new Array() lub tylko [].

Polecam przeczytać MDN JavaScript Guide.

Powiązane problemy