最近在刷题时遇到不少字符串、数组、对象的遍历的遍历问题,对该类问题作了概括汇总,便于记忆温习。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) }