2011-10-22 44 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

相关问题