好的,我有这段代码:
var room = [ { time: 0, people: 0 } ];
然后:
time = 5;
for( var i in room ) {
if( room[i].time < time ){
spliceIndex = i + 1;
}
}
console.log(spliceIndex);
控制台显示:01
- 这表示连接1,这进一步意味着i
是一个字符串,而不是预期的整数。将索引转换为整数修复了问题,但我敲了几个小时......我能解释为什么会发生这种情况吗?我在Firefox 3.5和Safari 4上得到了这个。
答案 0 :(得分:13)
因为for-in列出了对象属性,而不是数组索引。对象属性是字符串,数组索引显示为属性,只有它们是数字字符串。