我的一组javascript代码中有一个大问题:
console.dir(particles[idx]);
返回
Array[0]
0: particle
...
39: particle
length: 40
__proto__: Array[0]
(index):191
但
console.log("length:"+particles[idx].length);
返回
length:0
知道为什么长度值为 0 吗?在 console.dir 中,长度为 40。
我以为是在数组创建中,但没有找到原因。
这是填充此数组的代码(在这种情况下,idx = 1):
particles[idx] = [];
(function emitter(cnt) {
setTimeout(function(){
particles[idx].push(new particle());
if (--cnt) emitter(cnt);
}, 50);
})(particles_count);
谢谢你的帮助。
[编辑]
我有这段代码可以正确返回数组长度:
(function emitter(i) {
setTimeout(function () {
particles.push(new particle());
if (--i) emitter(i);
}, 50);
})(particle_count);
唯一的区别在于不使用索引的粒子数组。