孙Xuan
2016-08-02 11:28
使用for循环遍历input对象数组的时候下面这样写 var hobby = document.getElementsByTagName("input"); for(var i=0;i<hobby.length;i++) 可以实现,但是写for(i in hobby)就不行,为什么呢?
for语句是固定形式啊。
var hobby = document.getElementsByTagName("input");
hobby并不是一个array
这样转成array
var arr = Array.prototype.slice.call(hobby);
是这样的: for in 并不是你理解的那种遍历效果。
for in 遍历的不是数组,而是那个对象,也就是hobby 这个对象,它遍历访问的每个值其实是hobby的每个属性,而不是数组元素,不信你可以用
for(var i in hobby){
alert(i);
}
来看看每个i到底是谁,肯定不是数组元素。
for 循环根据下标访问的才算真是的数组元素。
所以for in 和for 是有区别的。
并且,使用for in 的效率要远低于for循环哦
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题