最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript中如何循環(huán)(常用方法推薦)

 更新時(shí)間:2025年04月17日 14:35:02   作者:流淚兔兔頭  
在JavaScript中,遍歷集合(如數(shù)組、對(duì)象、Map和Set等)有多種方式,下面給大家分享幾種常用的方法來(lái)講解Javascript中如何循環(huán),感興趣的朋友一起看看吧

在JavaScript中,遍歷集合(如數(shù)組、對(duì)象、Map和Set等)有多種方式。以下是一些常用的方法:

數(shù)組(Array)

for 循環(huán)

傳統(tǒng)循環(huán),適用于所有版本的JavaScript。

for (let i = 0; i < array.length; i++) {
  console.log(array[i]);
}

forEach 方法

ES5 引入,用于遍歷數(shù)組元素。

array.forEach((element, index) => {
  console.log(element);
});

for…of 循環(huán)

ES6 引入,用于遍歷可迭代對(duì)象(包括數(shù)組)。

for (const element of array) {
  console.log(element);
}

map 方法

創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是對(duì)調(diào)用數(shù)組中的每個(gè)元素執(zhí)行提供的函數(shù)的結(jié)果。

const newArray = array.map(element => /* ... */);

filter 方法

創(chuàng)建一個(gè)新數(shù)組, 包含通過(guò)所提供函數(shù)實(shí)現(xiàn)的測(cè)試的所有元素。

reduce 方法

對(duì)數(shù)組中的每個(gè)元素執(zhí)行一個(gè)由您提供的reducer函數(shù)(升序),將其結(jié)果匯總為單個(gè)返回值。

some 和 every 方法

  • some: 測(cè)試數(shù)組中的某些元素是否至少有一個(gè)滿足提供的函數(shù)。
  • every: 測(cè)試數(shù)組中的所有元素是否都滿足提供的函數(shù)。

對(duì)象(Object)

for…in 循環(huán)

遍歷對(duì)象自身的和繼承的可枚舉屬性(不含 Symbol 屬性)。

for (const key in object) {
  if (object.hasOwnProperty(key)) {
    console.log(object[key]);
  }
}

Object.keys(), Object.values(), Object.entries()

這些方法返回一個(gè)包含對(duì)象鍵名、鍵值或鍵值對(duì)的數(shù)組,可以結(jié)合數(shù)組的遍歷方法使用。

Map

for…of 循環(huán)

可以直接遍歷Map的鍵值對(duì)。

for (const [key, value] of map) {
  console.log(key, value);
}

forEach 方法

類似于數(shù)組的forEach,但專門針對(duì)Map設(shè)計(jì)。

map.forEach((value, key) => {
  console.log(key, value);
});

Set

for…of 循環(huán)

直接遍歷Set中的值。

for (const value of set) {
  console.log(value);
}

forEach 方法

與Map類似,Set也有自己的forEach方法。

set.forEach(value => {
  console.log(value);
});

這些是遍歷不同類型的集合時(shí)最常用的幾種方法。選擇哪種方法取決于你的具體需求以及你所使用的JavaScript環(huán)境。

以下是對(duì)各種循環(huán)類型的總結(jié) 數(shù)組(Array)

for 循環(huán)

    • 優(yōu)點(diǎn): 靈活性高,適用于所有版本的JavaScript;可以方便地控制循環(huán)邏輯。
    • 缺點(diǎn): 代碼量相對(duì)較多,不如一些更高階的方法簡(jiǎn)潔。

forEach 方法

  • 優(yōu)點(diǎn): 語(yǔ)法簡(jiǎn)潔,易于閱讀;適合于不需要返回新數(shù)組或修改原有數(shù)組的情況。
  • 缺點(diǎn): 不能中途跳出循環(huán)(如break),也不能跳過(guò)某些迭代(如continue);不支持異步操作。

for…of 循環(huán)

  • 優(yōu)點(diǎn): 語(yǔ)法簡(jiǎn)單,可讀性強(qiáng);允許使用breakcontinue。
  • 缺點(diǎn): 相對(duì)較新的特性,可能在舊環(huán)境中不被支持。

map 方法

  • 優(yōu)點(diǎn): 返回一個(gè)新的數(shù)組,不會(huì)改變?cè)瓟?shù)組;非常適合用于轉(zhuǎn)換數(shù)組元素。
  • 缺點(diǎn): 如果你不需要?jiǎng)?chuàng)建新數(shù)組,那么使用map可能會(huì)浪費(fèi)內(nèi)存。

filter 和 reduce 方法

  • 優(yōu)點(diǎn)filter可以輕松篩選數(shù)據(jù),而reduce可以用來(lái)累積計(jì)算或復(fù)雜的數(shù)據(jù)處理。
  • 缺點(diǎn): 對(duì)于復(fù)雜的操作,代碼可能會(huì)變得難以理解。

some 和 every 方法

  • 優(yōu)點(diǎn): 用于檢查條件是否滿足時(shí)非常有用,能立即退出循環(huán)。
  • 缺點(diǎn): 只適用于布爾判斷場(chǎng)景。

對(duì)象(Object)

for…in 循環(huán)

  • 優(yōu)點(diǎn): 可以遍歷對(duì)象的所有枚舉屬性,包括繼承的屬性。
  • 缺點(diǎn): 需要額外檢查屬性是否屬于對(duì)象本身(使用hasOwnProperty),并且會(huì)遍歷原型鏈上的屬性,這可能是不必要的。

Object.keys(), Object.values(), Object.entries()

  • 優(yōu)點(diǎn): 提供了更精確的遍歷方式,只針對(duì)對(duì)象自身的屬性;返回的數(shù)組可以與數(shù)組的遍歷方法結(jié)合使用。
  • 缺點(diǎn): 創(chuàng)建了新的數(shù)組,可能會(huì)有性能開(kāi)銷。

 Map 和 Set

對(duì)于Map和Set,for...offorEach方法都有它們各自的優(yōu)點(diǎn):

  • for…of:提供了一種直接遍歷鍵值對(duì)的方式,并且可以使用breakcontinue語(yǔ)句。
  • forEach:語(yǔ)法簡(jiǎn)潔,但無(wú)法中途退出循環(huán)。

到此這篇關(guān)于Javascript中如何循環(huán)的文章就介紹到這了,更多相關(guān)js循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript每天必學(xué)之事件

    JavaScript每天必學(xué)之事件

    JavaScript每天必學(xué)之事件,聊一聊事件冒泡與捕獲、事件冒泡的好處,感興趣的小伙伴們可以參考一下
    2016-09-09
  • websocket直接繞過(guò)JS加密示例及思路原理

    websocket直接繞過(guò)JS加密示例及思路原理

    這篇文章主要為大家介紹了websocket直接繞過(guò)JS加密的示例及思路原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • JavaScript實(shí)現(xiàn)換膚功能

    JavaScript實(shí)現(xiàn)換膚功能

    js換膚功能的實(shí)現(xiàn)原理非常簡(jiǎn)單,就是使用js切換對(duì)應(yīng)的css樣式表文件,本文重點(diǎn)給大家介紹JavaScript實(shí)現(xiàn)換膚功能,感興趣的朋友參考下吧
    2017-09-09
  • 詳解webpack-dev-server 設(shè)置反向代理解決跨域問(wèn)題

    詳解webpack-dev-server 設(shè)置反向代理解決跨域問(wèn)題

    后端只負(fù)責(zé)接口,前端負(fù)責(zé)數(shù)據(jù)展示、邏輯處理。那么如何跨域?這篇文章主要介紹了webpack-dev-server 設(shè)置反向代理解決跨域問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • javascript面向?qū)ο笾L問(wèn)對(duì)象屬性的兩種方式分析

    javascript面向?qū)ο笾L問(wèn)對(duì)象屬性的兩種方式分析

    這篇文章主要介紹了javascript面向?qū)ο笾L問(wèn)對(duì)象屬性的兩種方式分析,實(shí)例分析了直接訪問(wèn)對(duì)象屬性的方式與數(shù)組訪問(wèn)方式,需要的朋友可以參考下
    2015-01-01
  • 在網(wǎng)頁(yè)中使用document.write時(shí)遭遇的奇怪問(wèn)題

    在網(wǎng)頁(yè)中使用document.write時(shí)遭遇的奇怪問(wèn)題

    很多時(shí)候我們都會(huì)在網(wǎng)頁(yè)上的JavaScript中使用document.write來(lái)寫(xiě)入一些東西,有的時(shí)候可能因?yàn)槲覀儫o(wú)法改變某一部分HTML而不得不使用這樣的辦法,也有的時(shí)候是因?yàn)樵谶M(jìn)行跨應(yīng)用的腳本調(diào)用。
    2010-08-08
  • HTML+JS實(shí)現(xiàn)猜拳游戲的示例代碼

    HTML+JS實(shí)現(xiàn)猜拳游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用HTML+CSS+JS編寫(xiě)一個(gè)猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 微信小程序頂部導(dǎo)航欄可滑動(dòng)并選中放大

    微信小程序頂部導(dǎo)航欄可滑動(dòng)并選中放大

    這篇文章主要介紹了微信小程序頂部導(dǎo)航欄可滑動(dòng)并選中放大,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 僅IE9/10同時(shí)支持script元素的onload和onreadystatechange事件分析

    僅IE9/10同時(shí)支持script元素的onload和onreadystatechange事件分析

    測(cè)試結(jié)果可以看出,IE9后已經(jīng)開(kāi)始支持script的onload事件了。一直以來(lái)我們判斷js文件是否已經(jīng)加載完成就是用以上的兩個(gè)事件。
    2011-04-04
  • 詳解JS函數(shù)stack size計(jì)算方法

    詳解JS函數(shù)stack size計(jì)算方法

    本篇文章給大家分享了關(guān)于JS函數(shù)中stack size計(jì)算方法的相關(guān)知識(shí)點(diǎn),對(duì)此有需要的朋友可以跟著學(xué)習(xí)下。
    2018-06-06

最新評(píng)論

蕉岭县| 社会| 宁陕县| 伊宁市| 承德县| 缙云县| 凌云县| 庆阳市| 运城市| 泰兴市| 桑植县| 凌海市| 黔东| 临江市| 静乐县| 阿勒泰市| 藁城市| 民丰县| 沈阳市| 高台县| 南华县| 宁乡县| 龙山县| 鄂尔多斯市| 伊吾县| 眉山市| 鄂托克旗| 门头沟区| 兴文县| 广饶县| 庆阳市| 江油市| 江城| 平潭县| 山阳县| 文成县| 宁强县| 胶南市| 吴堡县| 沂南县| 鄂托克旗|