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...