Js數組遍歷,基本有for、forin、forEach、forof、map等一些方法,下面進行對比分析:
1>.普通for循環(最簡單一種,使用頻率高,性能不差,但仍然有優化空間)。
var arr = ['wukong', 'bajie', 'shaseng' ] for(var i = 0; i < arr.length; i++) { console.log(arr[i]) }
2>.優化版for循環(優化后將長度緩存起來,避免重復獲取長度,當數據較大時,回報比較明顯。性能上基本算最高)。
var arr = ['wukong', 'bajie', 'shaseng' ]; var len = arr.length; for(var i = 0; i < len; i++) { console.log(arr[i]) }
3>.forEach循環(數組自帶的forEach,使用頻率高,實際性能比普通for循環弱)
var arr = ['wukong', 'bajie', 'shaseng' ]; arr.forEach(element => { console.log(element); }
4>.forin循環(效率最低)
var arr = ['wukong', 'bajie', 'shaseng' ]; for(let i in arr){ console.log(arr[i]) })
5>.map(使用比較廣泛,雖然優雅,但是效率其實還不如forEach)
var arr = ['wukong', 'bajie', 'shaseng' ]; arr.map(function(e)) { console.log(e); }
6>.forof循環遍歷(需要ES6的支持)
var arr = ['wukong', 'bajie', 'shaseng' ]; for(let value of arr){ console.log(value) }
綜合而言,forin最慢,優化后的for循環最快。