一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - JavaScript 中的六種循環(huán)方法

JavaScript 中的六種循環(huán)方法

2021-12-27 16:05Saku js教程

這篇文章主要介紹了JavaScript 中的六種循環(huán)方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下

Javascript中的遍歷循環(huán)

1.for循環(huán)

對于數(shù)值索引的數(shù)組來說,可以使用標準的for循環(huán)來遍歷值

?
1
2
3
4
const arr=[1,2,3,4];
for(let i=0;i<arr.length;i++){
  console.log(i);
}

2.for...in循環(huán)

for...in循環(huán)可以用來遍歷對象的可枚舉屬性列表(包括原型鏈上的屬性)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const myObject={};
 
Object.defineProperty(myobject,"a",{
  //可枚舉
    enumerable:true,
  value:2,
})
Object.defineProperty(myobject,"b",{
  //不可枚舉
    enumerable:false,
  value:2,
})
 
for(let k in myObject){
  console.log(k,myObject[k])
    // a 2
}
//使用for...in循環(huán)是無法直接獲得屬性值的,因為它實際遍歷的是對象中的所有可枚舉屬性,
//所以你需要手動獲得屬性值.

在數(shù)組上應用for...in循環(huán),不僅僅會包含所有數(shù)值索引,還會包含所有可枚舉屬性.

所以最好在對象上應用for...in循環(huán)。如果要遍歷數(shù)組最好使用傳統(tǒng)的for循環(huán)來遍歷.

3.for...of循環(huán)

1.ES6新增的for...of循環(huán)

?
1
2
3
4
5
6
7
const arr=[1,2,3];
for(let value of arr){
  console.log(value)
  //1
  //2
  //3
}

for...of循環(huán)首先會向所有被訪問的對象請求一個迭代器對象,然后通過調(diào)用迭代器對象的next()方法來遍歷所有返回值

在數(shù)組中有內(nèi)置的@@iterator,因此for...of可以直接應用在數(shù)組上。

使用內(nèi)置的@@iterator遍歷數(shù)組

?
1
2
3
4
5
6
7
8
9
10
11
12
const arr=[1,2,3];
//獲取數(shù)組中的iterator對象:使用ES6中的符號Symbol.iterator來獲取對象的@@iteraotr內(nèi)部屬性.
//@@iterator本身不是一個迭代器,而是一個返回迭代器對象的函數(shù)。
const it=arr[Symbol.iterator]();
 
it.next(); //{value:1,done:false}
it.next(); //{value:2,done:false}
it.next(); //{value:3,done:false}
it.next(); //{done:true}
 
//調(diào)用迭代器的next()方法會返回形式為{value:..,done:..}的值;
//value為當前的值,done是一個布爾值,表示是否還存在可以遍歷的值

2.給對象定義@@iterator

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const myObject={
  a:2,
  b:3
}
Object.defineProperty(myObject,Symbol.iterator,{
    enumerable:false,
  writeable:false,
  configurable:true,
  value:function(){
    let o=this;
    let idx=0;
    //對象中的屬性數(shù)組
    let ks=Object.keys(o);
    return{
      value:o[ks[idx++]],
      done:(idx>ks.length);
    }
  }
})
 
const it=myObject[Symbol.iterator]();
it.next(); //{value:2,done:false}
it.next(); //{value:3,done:false}
it.next(); //{done:true}
 
 
for(let value of myObject){
    console.log(value);
}
// 2
// 3

4.foreach(...)

**forEach()** 方法對數(shù)組的每個元素執(zhí)行一次給定的函數(shù)。

?
1
2
3
4
5
const arr = ['a', 'b', 'c'];
arr.forEach(element => console.log(element));
// a
// b
// c
?
1
arr.forEach(callback(currentValue [,index [,array]])[,thisArg])

5.some(...)

some()是對數(shù)組中每一項運行給定函數(shù),如果該函數(shù)對任一項返回true,則返回true。

?
1
2
3
4
5
6
7
8
9
10
11
var arr = [ 1, 2, 3, 4, 5, 6 ];
 
console.log( arr.some( function( item, index, array ){
  console.log( 'item=' + item + ',index='+index+',array='+array );
  return item > 3;
}));
// item=1,index=0,array=1,2,3,4,5,6
// item=2,index=1,array=1,2,3,4,5,6
// item=3,index=2,array=1,2,3,4,5,6
// item=4,index=3,array=1,2,3,4,5,6
// true

6.every(...)

every()是對數(shù)組中每一項運行給定函數(shù),如果該函數(shù)對每一項返回true,則返回true。

?
1
2
3
4
5
6
7
8
var arr = [ 1, 2, 3, 4, 5, 6 ];
 
console.log( arr.every( function( item, index, array ){
  console.log( 'item=' + item + ',index='+index+',array='+array );
  return item > 3;
}));
// item=1,index=0,array=1,2,3,4,5,6
// false

以上就是JavaScript 中的六種循環(huán)方法的詳細內(nèi)容,更多關(guān)于JavaScript 循環(huán)的資料請關(guān)注服務器之家其它相關(guān)文章!

原文鏈接:https://juejin.cn/post/6914158102254190605

延伸 · 閱讀

精彩推薦
  • js教程JavaScript實現(xiàn)瀑布流布局的3種方式

    JavaScript實現(xiàn)瀑布流布局的3種方式

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)瀑布流布局的3種方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    杏子_10247272021-12-20
  • js教程ES5和ES6中類的區(qū)別總結(jié)

    ES5和ES6中類的區(qū)別總結(jié)

    這篇文章主要給大家介紹了ES5和ES6中類的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    Totora612112021-12-16
  • js教程JavaScript實現(xiàn)通訊錄功能

    JavaScript實現(xiàn)通訊錄功能

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    書寫夢想的鉛筆頭5602021-12-20
  • js教程使用AutoJs實現(xiàn)微信搶紅包的代碼

    使用AutoJs實現(xiàn)微信搶紅包的代碼

    這篇文章主要介紹了使用AutoJs實現(xiàn)微信搶紅包的代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    王略5692021-12-23
  • js教程微信小程序?qū)W習之自定義滾動彈窗

    微信小程序?qū)W習之自定義滾動彈窗

    這篇文章主要給大家介紹了關(guān)于微信小程序?qū)W習之自定義滾動彈窗的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考...

    юноша9042021-12-15
  • js教程JavaScript實現(xiàn)頁面高亮操作提示和蒙板

    JavaScript實現(xiàn)頁面高亮操作提示和蒙板

    這篇文章主要介紹了JavaScript實現(xiàn)頁面高亮操作提示和蒙板,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    stones4zd5702021-12-24
  • js教程Strve.js開發(fā)一個屬于自己的庫或框架

    Strve.js開發(fā)一個屬于自己的庫或框架

    Strve.js是一個可以將字符串轉(zhuǎn)換為視圖的JS庫。這里的字符串指的是模板字符串,所以你僅需要在JavaScript中開發(fā)視圖。Strve.js不僅易于上手,還便于靈活拆裝...

    前端歷劫之路5732021-12-23
  • js教程微信小程序彈窗禁止頁面滾動的實現(xiàn)代碼

    微信小程序彈窗禁止頁面滾動的實現(xiàn)代碼

    這篇文章主要介紹了微信小程序彈窗禁止頁面滾動的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需...

    任我行RQ5432021-12-23
主站蜘蛛池模板: 奇米影视777最新在线 | 99性视频| 日本粉色视频 | 校花在公车上被内射好舒服 | 青青青国产手机在线播放 | 亚洲香蕉视频 | 久久久久久久国产精品视频 | 青青草在线观看 | 高h折磨调教古代 | 日韩视频免费一区二区三区 | 国产成人精品午夜免费 | 日本一二线不卡在线观看 | 久久热在线视频精品1 | 第一次做m被调教经历 | 美女靠逼免费视频 | 高清在线观看mv的网址免费 | 欧美日韩成人在线视频 | 小莹的性荡生活45章 | 希岛爱理作品在线观看 | 国产精品永久免费自在线观看 | 久久人妻少妇嫩草AV無碼 | 亚洲国产精品嫩草影院久久 | 热99精品 | 2020最新版的ab片 | 日本在线色 | 国产精品网页 | 香蕉国产人午夜视频在线观看 | 免费观看一级欧美在线视频 | 美女脱小内内给男生摸j | 国产精品青青在线观看香蕉 | 亚洲第一区二区快射影院 | 国产一区风间由美在线观看 | 久久91精品国产91久久户 | 荡女淫春2古装 | 99精品国产综合久久久久 | 欧美日韩精品一区二区三区视频播放 | 成年美女黄网站色视频大全免费 | 日本不卡一区二区三区在线观看 | 欧美日韩一级视频 | 国产精品第页 | 男人j放进女人的p免费看视频 |