2011-10-22 15 views
7

questo è un array di oggetti,come aggiungere valori a una matrice di oggetti in modo dinamico in javascript?

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

come posso aggiungere valori a questi in modo dinamico? Ho provato il codice qui sotto, ma senza successo

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

chiunque per favore .. grazie in anticipo

+1

Sai che ci sono 3x lab e 4x val? – xanatos

+0

sì lo so, è solo qui erroneamente .. grazie per avermi informato –

risposta

22

Dovete istanziare l'oggetto prima. Il modo più semplice è:

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

O un altro, modo meno conciso, ma più vicino al tuo codice originale:

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

array() non creerà un nuovo array (a meno che non si è definito tale funzione). O Array() o new Array() o solo [].

Mi raccomando di leggere il MDN JavaScript Guide.

Problemi correlati