js數組遍歷 千萬不要使用for...in...
阿新 • • 發佈:2017-10-31
prototype -h fun prot 數組 set splice mar init
昨天做個下拉框 擴充了一下數組的方法
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...