我的一个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);
唯一的区别在于粒子数组中没有使用索引。
答案 0 :(得分:1)
particles
是一个包含40个项目的数组,但particles[idx].length
返回40个项目长度之一的长度。像:
var particles = ['','','',''];
particles.length
为4,particles[0].length
为0,因为particles[0] = ''