jef*_*ind 0 javascript for-loop object for-in-loop
这让我困扰了一段时间,请看我的jsfiddle:http://jsfiddle.net/DHR8Q/,其中包含以下javascript代码:
var id = "11111;22222;33333";
id = id.split(";");
alert(typeof id);
for (var i in id){
alert(id[i]);
}?
Run Code Online (Sandbox Code Playgroud)
当我id用字符";" 拆分变量时,我使用for循环,我会假设i == 0,1,2因为字符串id被分成3部分,但这不是发生的事情.实际上i == 0,1,2,3,4....为什么JavaScript会这样做?
Mat*_*att 11
因为您链接的jsFiddle包含Mootools库; 它添加了自己的方法Array.prototype.
当您使用数组枚举数组时for in,它会遍历所有属性; 包括那些方法; 这就是你所看到的.
你应该检查使用hasOwnProperty(),或者更好地使用for(;;);
for (var i in id){
if (id.hasOwnProperty(i)) {
alert(id[i]);
}
}?
Run Code Online (Sandbox Code Playgroud)
要么
for (var i=0;i<id.length;i++) {
alert(id[i]);
}
Run Code Online (Sandbox Code Playgroud)