怎么可能有一个长度为0但有内容的数组?

时间:2017-02-05 06:50:22

标签: javascript

我有以下测试代码:

console.log('AA',slider);
console.log('AB',slider.length);

它在chrome控制台中返回以下内容。

AA Array[53]
AB 0

我添加了测试代码,因为slider[5]总是带着undefined回来,即使控制台显示那里有值。

这是初始化脚本的简化版本。整个代码很长,Slider是一个对象。对象的代码正在运行测试脚本稍后尝试根据ajax返回数据操作特定的滑块位置。

var slider=[];
for (var uid=1;uid<50;uid++) {
    slider[uid]=new Slider(.........);
}
var slider={};
for (var uid=1;uid<50;uid++) {
    slider[uid]=new Slider(.........);
}

返回     AA {         1:{米             一个: ....,             b:......,             C: ....,             G: ....,             H: ....         },         2:.....

一直到49

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题,希望这有助于其他人。

完成代码后,这是一个更好的初始化示例

var slider=[];
setInterval(function(){
    for (var uid=1;uid<50;uid++) {
        slider[uid]=new Slider(.........);
    }
},500);
console.log('AA',slider);
console.log('AB',slider.length);

在执行控制台日志命令时,数组确实是空的,但显然第一行记录了对象的引用,而不是当前状态。因此,当我查看日志总是会超过半秒时,它会显示数据存在。