那种情况是存在的,data数组中并不是只有三个元素,只是你没看到而已,另一个元素的值为undefined。你是用alert(data[i]),输出一下就能知道了。var data = new Array(1); data.push(0); data.push(1); data.push(2); alert(data.length);
#2这样写更加明了一些 var data = [] data[1]=1 data[2]=2 data[3]=3 alert(data.length);//4,下标为0的数组项没有赋值,但是是存在的 data[10]=10 alert(data.length);//11,3~10之间的下标自动生成,数组length属性也增加
lz的data[3]为undefined也可能会出现,如下var data = new Array(4); for(var i = 0; i < 3; i++){ data[i] = i; } alert(data.length); alert(data[3]);
data.push(0);
data.push(1);
data.push(2);
alert(data.length);
#2这样写更加明了一些
var data = []
data[1]=1
data[2]=2
data[3]=3
alert(data.length);//4,下标为0的数组项没有赋值,但是是存在的
data[10]=10
alert(data.length);//11,3~10之间的下标自动生成,数组length属性也增加
for(var i = 0; i < 3; i++){
data[i] = i;
}
alert(data.length);
alert(data[3]);
让你把你那个解析前的data代码贴出来呀。我都帮你着急问问题,丢示例出来,这应该是基本流程吧。。
[
{ name: '关羽', mac: 'ffds', state: 1, x: 354, y: 524, z: 533, area: '10' },
{ name: '张飞', mac: 'ffds', state: 1, x: 154, y: 724, z: 133, area: '10' },
{ name: '赵云', mac: 'ffds', state: 1, x: 624, y: 324, z: 343, area: '10' },
]由于数组最后一项的逗号没有去掉,用eval解析的时候, chrome 和 firefox 会忽略掉最后的逗号, IE8则会认为逗号之后还有个undefined,IE6会报错