js数组遍历 千万不要使用for...in...

Posted 改变

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数组遍历 千万不要使用for...in...相关的知识,希望对你有一定的参考价值。

昨天做个下拉框 扩充了一下数组的方法

Array.prototype.remove = function (val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};

结果今天就遇到问题了
for (i in initMarker) {
initMarker[i].setMap(null);
}
用for in 循环数组

总是在最后多出一个romove方法

原因以及解决方法
第一种解决办法:
hasOwnPrototype  选取自己的属性,而不是从原型上继承来的

for (i in initMarker) {
if(initMarker.hasOwnPrototype(i)){
      initMarker[i].setMap(null);    }   
}

第二种解决办法:
for() 循环
for(var i=0;i<initMarker.length;i++){
initMarker[i].setMap(null);
}


























以上是关于js数组遍历 千万不要使用for...in...的主要内容,如果未能解决你的问题,请参考以下文章