
js數(shù)組遍歷方法有哪些?一起來看看小編今天的分享吧!
js數(shù)組遍歷,包括普通for循環(huán)、優(yōu)化版for循環(huán)、弱化版for循環(huán)、foreach循環(huán)、foreach變種、forin循環(huán)、map遍歷等方法,以下將一一介紹這些數(shù)組遍歷方式。
第一種:普通for循環(huán)
代碼如下:
for(j?=?0;?j?普通for循環(huán)是最簡單的一種,也是使用頻率最高的一種。
第二種:優(yōu)化版for循環(huán)
代碼如下:
for(j?=?0,len=arr.length;?j?優(yōu)化版for循環(huán)使用臨時(shí)變量,將長度緩存起來,避免重復(fù)獲取數(shù)組長度,當(dāng)數(shù)組較大時(shí)優(yōu)化效果才會(huì)比較明顯,這種方法基本上是所有循環(huán)遍歷方法中性能最高的一種。
第三種:弱化版for循環(huán)
代碼如下: for(j?=?0;?arr[j]!=null;?j++)?{ ??? }弱化版for循環(huán)其實(shí)嚴(yán)格上也屬于for循環(huán),只不過是沒有使用length判斷,而使用變量本身判斷,性能要遠(yuǎn)遠(yuǎn)小于普通for循環(huán)。
第四種:foreach循環(huán)
代碼如下:
arr.forEach(function(e){?? ??? });數(shù)組自帶的foreach循環(huán),使用頻率較高,但性能比普通for循環(huán)弱。
第五種:foreach變種
代碼如下:
Array.prototype.forEach.call(arr,function(el){?? ??? });由于foreach是Array型自帶的,對于一些非這種類型的,無法直接使用(如NodeList),所以才有了這個(gè)變種,使用這個(gè)變種可以讓類似的數(shù)組擁有foreach功能,但實(shí)際性能要比普通foreach弱。
第六種:forin循環(huán)
代碼如下:
for(j?in?arr)?{ ??? }forin循環(huán)在眾多的循環(huán)遍歷方式中效率最低。
第七種:map遍歷
代碼如下:
arr.map(function(n){?? ??? });map遍歷實(shí)際效率弱于foreach。
第八種:forof遍歷(需要ES6支持)
代碼如下:
for(let?value?of?arr)?{?? ??? });forof遍歷是es6里面用到的,性能要好于forin,但仍然比不上普通for循環(huán)。
以上就是小編今天的分享了,希望可以幫助到大家。
