js中的for in循环
生活随笔
收集整理的這篇文章主要介紹了
js中的for in循环
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原型添加屬性之后,默認情況下枚舉,最后輸出1234513
function getNewArrayTwo(){ var array=[1,2,3,4,5 ]; Array.prototype.age=13; var result=[]; for(var i in array){ result.push(array[i]); } alert(result.join('')); }所以建議不要對數組執行for?in循環,事實上,在高性能javascript這本書中,也強調了for?in循環的不好,因為它總是會訪問該對象的原型,看下原型上是否有屬性,這在無意中就給遍歷增加了額外的壓力。
解決方法:
如果某個對象具有給定名稱的屬性,那么Object.prototype.hasOwnProperty(name)返回true。如果該對象是從原型鏈中繼承了該屬性,或者根本沒有這樣的一個屬性,則返回false。通過hasOwnProperty限定for?in循環在當前中遍歷,而不用去考慮它的原型屬性。
function finalArray(){ var array=[1,2,3,4,5 ]; Array.prototype.age=13; var result=[]; for(var i in array){ if(array.hasOwnProperty(i)){ result.push(array[i]); } } alert(result.join('')); }?呃呃呃,最近發現for of功能,突然發現以前有點low
for of遍歷的只是數組內的元素,而不包括數組的原型屬性method和索引name
遍歷對象 通常用for in來遍歷對象的鍵名,對于數組我建議用for of
var myArray=[1,2,4,5,6,7] myArray.name="數組"; for (var value of myArray) {console.log(value); }總結
以上是生活随笔為你收集整理的js中的for in循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsDelivr的CDN加速被污染
- 下一篇: 年轻人,如何抗造系列之 - 感恩,树洞及