js陣列遍歷和物件遍歷

2021-08-22 16:31:10 字數 2260 閱讀 7208

針對js各種遍歷作乙個總結分析,從型別用處:分陣列遍歷和物件遍歷;還有效能,優缺點等。

1,普通for迴圈,經常用的陣列遍歷

var arr = [1,2,0,3,9];

for ( var i = 0; i 2,優化版for迴圈:使用變數,將長度快取起來,避免重複獲取長度,陣列很大時優化效果明顯

for(var j = 0,len = arr.length; j < len; j++)

3,foreach,es5推出的,陣列自帶的迴圈,主要功能是遍歷陣列,實際效能比for還弱

arr.foreach(function(value,i));map遍歷支援使用return語句,支援return返回值

var temp=arr.map(function(val,index))

console.log(temp);

foreach、map都是ecma5新增陣列的方法,所以ie9以下的瀏覽器還不支援

5,for-of遍歷 是es6新增功能

for( let i of arr)
for-of迴圈不僅支援陣列,還支援大多數類陣列物件,例如dom nodelist物件。

for-of迴圈也支援字串遍歷

1,for-in遍歷

for-in是為遍歷物件而設計的,不適用於遍歷陣列。

遍歷陣列的缺點:陣列的下標index值是數字,for-in遍歷的index值"0","1","2"等是字串

for (var index in arr)
對於物件的遍歷,

let obj =
let obj = 

for (let key in obj)

// key: a,value: b

// key: c,value: d

值得注意的是,for in 遍歷物件,會將原型鏈上的所有可列舉的屬性也遍歷到。

object.prototype.test = 'mytest'

let obj =

for (let key in obj)

//key: a,value: b

//key: c,value: d

//key: test,value: mytest

對於不可列舉的屬性(enumerable: false),比如說tostring方法,那麼for in 就不會遍歷到

//    object.prototype.test = 'mytest'

object.defineproperty(object.prototype,'test',)

let obj =

for (let key in obj)

由於for in 遍歷會遍歷原型鏈上的屬性,所以一般我們想要遍歷物件本身的屬性的時候,要加hasownproperty來進行一層過濾。

object.prototype.test = 'mytest'

let obj =

for (let key in obj)

}//key: a,value: b

//key: c,value: d

使用object.keys()只能遍歷到自身本身並且是可列舉的屬性

object.prototype.test = 'mytest'

let obj =

let keys = object.keys(obj)

console.log(keys) //["a", "c"]

object.prototype.test = 'mytest'

let obj =

object.defineproperty(obj,'non-em',)

let keys = object.keys(obj)

console.log(keys) // ["a", "c", "non-em"]

object.prototype.test = 'mytest'

let obj =

object.defineproperty(obj,'non-em',)

let keys = object.getownpropertynames(obj)

console.log(keys) //["a", "c", "non-em"]

js陣列遍歷和物件遍歷

1.普通for迴圈var arr 1,2,3,4,5,6 for var i 0 i length i 2.優化版for迴圈 使用變數,將長度快取起來,避免重複獲取長度,陣列很大時優化效果明顯for var j 0 len arr.length j j 3.foreach,es5推出的,陣列自帶的迴...

js陣列遍歷和物件遍歷

針對js各種遍歷作乙個總結分析,從型別用處 分陣列遍歷和物件遍歷 還有效能,優缺點等。js陣列遍歷 1,普通for迴圈,經常用的陣列遍歷 var arr 1,2,0,3,9 for var i 0 i 2,優化版for迴圈 使用變數,將長度快取起來,避免重複獲取長度,陣列很大時優化效果明顯 for ...

js陣列遍歷和物件遍歷

針對js各種遍歷作乙個總結分析,從型別用處 分陣列遍歷和物件遍歷 還有效能,優缺點等。1,普通for迴圈,經常用的陣列遍歷 var arr 1,2,0,3,9 for var i 0 i 2,優化版for迴圈 使用變數,將長度快取起來,避免重複獲取長度,陣列很大時優化效果明顯 for var j 0...