最近在刷題時遇到不少字符串、數組、對象的遍歷的遍歷問題,對該類問題作了概括彙總,便於記憶溫習。es6
一、字符串遍歷。數組
// 可以使用for循環或for/in來遍歷字符串,將索引值賦值給循環變量 var str = 'asd fgh' for(var i = 0; i < str.length; i ++) { console.log(str[i]) }
for(var i in str) { console.log(str[i]) }
二、數組遍歷。spa
// for遍歷 var arr = [11,22,33,44] for(var i = 0; i < arr.length; i ++) { console.log(arr[i]) } // forEach遍歷,循環變量是數組元素。 arr.forEach(function(item){ console.log(item) // 11 22 33 44 }) //for/in循環可以遍歷繼承的屬性,即Array.prototype中的屬性,使用時須要額外檢測。 for(var i in arr) { if(!arr.hasOwnProperty(i)) continue console.log(arr[i]) } // es6新增的let/of遍歷 for(let value of arr){ console.log(value) // 11 22 33 44 }
三、對象遍歷。prototype
var obj = { name: 'asdf', fun(){ console.log('night') } } //for/in 遍歷, for(p in obj) { console.log(obj[p]) } //es6的let/of方法 for(let [key,value] of Object.entries(obj)){ console.log(key,value) }