數(shù)組2

js數(shù)組遍歷和對(duì)象遍歷

針對(duì)js各種遍歷作一個(gè)總結(jié)分析,從類(lèi)型用處:分?jǐn)?shù)組遍歷和對(duì)象遍歷;還有性能,優(yōu)缺點(diǎn)等。

JS數(shù)組遍歷:

1,普通for循環(huán),經(jīng)常用的數(shù)組遍歷

<pre>var arr = [1,2,0,3,9]; for ( var i = 0; i <arr.length; i++){
    console.log(arr[i]);
}</pre>

2,優(yōu)化版for循環(huán):使用變量,將長(zhǎng)度緩存起來(lái),避免重復(fù)獲取長(zhǎng)度,數(shù)組很大時(shí)優(yōu)化效果明顯

<pre>for(var j = 0,len = arr.length; j < len; j++){
    console.log(arr[j]);
}</pre>

3,forEach,ES5推出的,數(shù)組自帶的循環(huán),主要功能是遍歷數(shù)組,實(shí)際性能比f(wàn)or還弱

arr.forEach(function(value,i){
  console.log('forEach遍歷:'+i+'--'+value);

})

forEach這種方法也有一個(gè)小缺陷:你不能使用break語(yǔ)句中斷循環(huán),也不能使用return語(yǔ)句返回到外層函數(shù)。

4,map遍歷,map即是 “映射”的意思 用法與 forEach 相似

<pre>arr.map(function(value,index){
    console.log('map遍歷:'+index+'--'+value);
});</pre>

map遍歷支持使用return語(yǔ)句,支持return返回值

<pre>var temp=arr.map(function(val,index){
  console.log(val); return val*val           
})
console.log(temp); </pre>

forEach、map都是ECMA5新增數(shù)組的方法,所以ie9以下的瀏覽器還不支持

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

<pre>for( let i of arr){
    console.log(i);
}</pre>
  • for-of這個(gè)方法避開(kāi)了for-in循環(huán)的所有缺陷
  • 與forEach()不同的是,它可以正確響應(yīng)break、continue和return語(yǔ)句

for-of循環(huán)不僅支持?jǐn)?shù)組,還支持大多數(shù)類(lèi)數(shù)組對(duì)象,例如DOM NodeList對(duì)象。

for-of循環(huán)也支持字符串遍歷

JS對(duì)象遍歷:

1,for-in遍歷

for-in是為遍歷對(duì)象而設(shè)計(jì)的,不適用于遍歷數(shù)組。

遍歷數(shù)組的缺點(diǎn):數(shù)組的下標(biāo)index值是數(shù)字,for-in遍歷的index值"0","1","2"等是字符串

<pre>for (var index in arr){
    console.log(arr[index]);
    console.log(index);
}</pre>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容