最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

你能想到的前端遍歷都在這里了!

2023-09-09 20:45 作者:bengdour  | 我要投稿

前端遍歷的存在,極大地簡化了我們處理業(yè)務(wù)數(shù)據(jù)的繁瑣程度。所以熟悉并靈活運用他們可大大地提高我們的效率。下面就一一熟悉他們吧!


01

遍歷方法目錄

  1. for循環(huán)?-?稍許繁瑣,可中斷(break),可跳過(conttinue)

  2. for-of -?簡化for循環(huán),更加靈活,無需索引

  3. for-in -?對象遍歷,一般不用于數(shù)組遍歷

  4. while -?當(dāng)循環(huán)次數(shù)不限制、不確定一時使用

  5. forEach -?適合對每個元素執(zhí)行操作;沒有返回值,會改變原數(shù)組

  6. some -?返回值為true或者false;只要一個元素滿足條件,則返回true

  7. every -?返回值為true或者false;所有元素都滿足條件,返回true

  8. filter -?根據(jù)指定的條件篩選出數(shù)組中滿足條件的元素,返回數(shù)組或[]

  9. find -?查找滿足指定條件的第一個元素,返回元素或undefined

  10. findLast -?查找滿足指定條件的最后一個元素,返回元素或undefined

  11. findIndex -?查找滿足指定條件的第一個元素索引,返回索引或者-1

  12. findLastIndex -?查找滿足指定條件的最后一個元素索引,返回索引或者-1

  13. map -?每個元素的映射,可以為每個元素根據(jù)展示要求進(jìn)行處理

  14. reduce -?求和,求平均數(shù),字符串返轉(zhuǎn),數(shù)組扁平化

  15. reduceRight -?跟上面方法區(qū)別就是從后往前遍歷

  16. sort -?降序排序,升序排序列;會改變原數(shù)組


02

一一拆解


1.for循環(huán)

for循環(huán)是最早也是最常見的一種遍歷。因其寫起來稍顯繁瑣,逐漸被其它遍歷方法所取代。但其有一個地位是不可撼動的-可中斷循環(huán),這是其它遍歷所不不能實現(xiàn)的。所以某些情境五,我們不得不乖乖地來啟用這個古老的語法。

示例:

最后一個console是否顯示,取決環(huán)境前一個{}里的關(guān)鍵記是break還是continue:

break:?跳出循環(huán),可以執(zhí)行循環(huán)體外的代碼;輸出:2,3,5,大于5不顯示,這里顯示嗎?

continue:?跳出本次循環(huán),繼續(xù)循環(huán)。如此例return換做continue,則輸出:2,3,5,大于5不顯示,1,這里顯示嗎?


2.for-of

for-of語句,略過索引,寫起來更加簡便。使用它可以將每一項元素依次循環(huán)出來,還可以將迭代對象循環(huán)出來。

迭代對象包括:Array、Set、Map、Arguments、String、Typed Array、Generators這7類。而Object類型不是可迭代對象。

示例:

3.for-in

for in 循環(huán)是一種特殊類型的循環(huán),主要用來遍歷對象也可以遍歷數(shù)組(但是不推薦),使用它可以將對象中的屬性依次循環(huán)出來。

示例:


4.while

在while和do/while里,記得一定要自加或自減,否則會無限循環(huán)下去...

  • while只有當(dāng)循環(huán)條件成立時,才會執(zhí)行{}里的代碼。

語法如下:


示例:


  • do/while是while的變體。它與 while 循環(huán)的不同在于,在檢查條件是否為真之前,該循環(huán)將會執(zhí)行一次代碼塊,然后只要條件為真,它就將重復(fù)該循環(huán)。

語法如下:


示例:

5.forEach

返回值:undefined;

是否改變原數(shù)組:改變原數(shù)組。

語法:

數(shù)組名.forEach((item, index, array) => { /* … */ }, thisValue)

item:指數(shù)組中的每一個元素;

index:指各個元素相對應(yīng)的索引;

array:指數(shù)組本身,一般可以不寫。

thisValue :?可選, 對象作為該執(zhí)行回調(diào)時使用,傳遞給函數(shù),用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined";

示例:


6.some

數(shù)組中只要有一個元素符合條件就返回true,否則就返回false。

返回值:true | false;

是否改變原數(shù)組:不改變原數(shù)組。

語法:

數(shù)組名.some( (item, index, array) => { /* … */ }, thisValue)

同上...

示例:


7.every

數(shù)組中所有元素都符合條件才返回true,否則就返回false。

返回值:true | false;

是否改變原數(shù)組:不改變原數(shù)組。

語法:

數(shù)組名.every( (item, index, array) => { /* … */ }, thisValue)

同上...

示例:


8.filter

查找數(shù)組中符合條件的所有元素。

返回值:[] | 符合條件的數(shù)組;

是否改變原數(shù)組:不改變原數(shù)組。

語法:

數(shù)組名.filter( (item, index, array) => { /* … */ }, thisValue)

同上...

示例:


9.find

返回符合條件的第一個元素。

返回值:undefined | 符合條件的元素;

是否改變原數(shù)組:不改變原數(shù)組。

語法:

數(shù)組名.find( (item, index, array) => { /* … */ }, thisValue)

同上...

示例:

filter:返回[]或者數(shù)組;

find:返回undefined或者查找到的第一個元素


10.findLast

findLast與find類似,惟一區(qū)別就是查找順序-findLast是從右側(cè)往左側(cè)查找,找到最后一個(從前往后數(shù)是最后一個,從后往前數(shù)是第一個)符合條件的元素。

返回值:undefined | 符合條件的元素;

示例:


11.findIndex

返回符合條件的索引,沒有查到則返回-1。

返回值:-1 | 符合條件的元素索引;

示例:


12.findLastIndex

findLastIndex與findIndex類似,唯一區(qū)別是篩查順序。查到到最后一個符合條件的元素的索引。這個索引可是從前往后數(shù)的噢!

返回值:-1 | 符合條件的元素索引;

示例:

findLast 和 findLastIndex

是最新提案,目前在微信小程序中不支持,會報錯。不知道把小程序升級到最高版是否還會報錯。

13.map

map是一種映射。在需要為每一項元素按照指定規(guī)則變化時使用。返回新數(shù)組。

返回值:undefined | 符合條件的元素;

是否改變原數(shù)組:不改變原數(shù)組。

語法:

數(shù)組名.map( (item, index, array) => { /* … */ }, thisValue)

同上...

示例:


14.reduce

返回值:?最終累積結(jié)果:reduce方法返回最終的累積結(jié)果,可以是任意數(shù)據(jù)類型,如數(shù)字、字符串、對象或數(shù)組。

是否改變原數(shù)組: ?不改變原數(shù)組

語法:

數(shù)組名.reduce((prev, cur, index, arr) => { /* … */ }, init)

prev:表示上一次調(diào)用回調(diào)時的返回值,或者初始值 init;

cur:表示當(dāng)前正在處理的數(shù)組元素;

index:表示當(dāng)前正在處理的數(shù)組元素的索引,若提供 init 值,則索引為0,否則索引為1;

arr :?表示原數(shù)組,可不寫;

init:初始值,可選項。

當(dāng)沒有傳入初始值時,prev是從數(shù)組中第一個元素開始的,cur 是數(shù)組第二個元素。

但是當(dāng)傳入初始值(init)后,第一個 prev 將是初始值 init,cur 將是數(shù)組中的第一個元素。

reduce有多種應(yīng)用:

應(yīng)用1-求和:

示例:


應(yīng)用2-求平均:

求和與求平均類似,求和之后天的返回值再求平均就OK。

示例:


應(yīng)用3-數(shù)組無素最大值和最小值:

求數(shù)組中的最大值和最小值,簡直不要太簡單。直接使用只適合于一維數(shù)組。

示例:


應(yīng)用4-數(shù)組扁平化:

只適合一維或二維數(shù)組,多維不適合

示例:

reduce5的返回值



15.reduceRight

reduceRight與reduce惟一區(qū)別就是迭代方向是從右側(cè)往前。

主要有以下兩種應(yīng)用:

應(yīng)用1-字符串返轉(zhuǎn):

首先需要先將字符串轉(zhuǎn)化成數(shù)組-reduceRight是對數(shù)組的操作。

示例:


應(yīng)用1-扁平化樹結(jié)構(gòu):

這個應(yīng)用是某大老發(fā)出的,不是很懂。留個記號,以備后用。


16.sort

sort的功能是排序。

返回值:?返回排序后的新數(shù)組;

是否改變原數(shù)組:?改變原數(shù)組

語法:

數(shù)組名.sort( (a, b) => { /* … */ })

a, b為前后兩個連續(xù)的元素。

  • 如果返回值結(jié)果小于0,則a和b的順序不變;

  • 如果返回值結(jié)果等于0,則a和b的順序不變;

  • 如果返回值的結(jié)果大于0,a和b會交換位置。

就是根據(jù)以上規(guī)則進(jìn)行升序或者是降序排序的。

a - b:升序;

b - a:降序

示例:


你能想到的前端遍歷都在這里了!的評論 (共 條)

分享到微博請遵守國家法律
河津市| 呼伦贝尔市| 子长县| 泽库县| 永顺县| 华池县| 蒙自县| 高淳县| 临沂市| 贵港市| 磐石市| 房产| 贡嘎县| 青州市| 时尚| 北安市| 福安市| 大理市| 合肥市| 叶城县| 辽阳县| 岳池县| 句容市| 罗源县| 余姚市| 大庆市| 平泉县| 越西县| 眉山市| 长宁县| 东源县| 陕西省| 徐水县| 册亨县| 固阳县| 虞城县| 垣曲县| 老河口市| 星子县| 奇台县| 廉江市|