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);
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM