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...的主要内容,如果未能解决你的问题,请参考以下文章

前端js的数组的循环遍历 for / for of / for in / arr.forEach()

JavaScript中遍历数组 最好不要使用 for in 遍历

JavaScript中遍历数组 最好不要使用 for in 遍历

不要用for in语句对数组进行遍历

JavaScript中遍历数组,最好不要用for...in

JS中的forEach,for in,for of和for的遍历优缺点及区别