JS中如何遍歷陣列以及物件

2021-08-21 21:29:07 字數 1364 閱讀 9125

1.普通的for迴圈

for(var i = 0; i < arr.length; i++)
2.改良的for迴圈

for(var i = 0,len=arr.length; i < len; i++)
ps:比普通版的for迴圈好在使用臨時變數快取了長度,避免了重複獲取陣列的長度,提公升了執行效率。當陣列較大時能明顯體現出效果。

3.foreach迴圈

arr.foreach(function(e));
ps:陣列本身自帶的方法,效能相對普通for迴圈稍低。

4.foreach變種

array.prototype.foreach.call(arr,function(el));
ps:由於foreach是陣列本身自帶的方法,所以對於其他一些型別而言,是無法使用的(如nodelist)。效能較之普通foreach更低。

5.for in 迴圈

for(var i in arr)
ps:在普通迴圈遍歷中,效能最低。

6.map遍歷

arr.map(function(n));
ps:效能比普通foreach低。

7.for of 遍歷(es6語法)

for(let value of arr) );
ps:效能比for in 稍好,但仍不如普通for 迴圈。

1.使用object.keys()遍歷

object.keys(obj).foreach(function(key));
ps:返回乙個陣列,包括物件自身的(不含繼承的)所有可列舉屬性(不含symbol屬性).

2.for in 遍歷

for(var i in obj)
ps:迴圈遍歷物件自身的和繼承的可列舉屬性(不含symbol屬性).

3.使用object.getownpropertynames(obj)遍歷

object.getownpropertynames(obj).foreach(function(key));
ps:返回乙個陣列,包含物件自身的所有屬性(不含symbol屬性,但是包括不可列舉屬性).

4.使用reflect.ownkeys(obj)遍歷

reflect.ownkeys(obj).foreach(function(key));
ps:返回乙個陣列,包含物件自身的所有屬性,不管屬性名是symbol或字串,也不管是否可列舉.

js遍歷陣列(物件)

例 let arr 1,2,3 for let i 0 iconsole.log arr i 輸出結果 1 2 3 例 let arr 1,2,3 for let i in arr 輸出結果 1 2 3 說明 同普通for迴圈,以key遍歷查詢陣列或物件 例 let arr 1,2,3 for le...

js遍歷陣列和物件的方法以及如何區分

普通的for迴圈 let arr 1,2,3,4 for let i 1 i arr.length i for in遍歷陣列的鍵名或者陣列的下標 存在的問題 1 在某些情況下,這段 可能按照隨機順序遍歷陣列元素,2 陣列原型鏈上的屬性都能被訪問到 let arr 1,2,3,4 for let i ...

JS中遍歷陣列 物件的方式

1.標準的for迴圈遍歷陣列 不列印自定義屬性和繼承屬性 var array 1,2,3 for var i 0 i array.length i 2.for in 遍歷物件 不要用for in遍歷陣列,因為還會列印自定義屬性和繼承屬性 一般常用來遍歷非陣列的物件並且使用hasownproperty...