重要的 JavaScript 數(shù)組方法:映射(),forEach(),減少(),過(guò)濾器(),排序(),包括(),查找(),索引的(),一些(),連接()
數(shù)組方法在 JavaScript 中是不可或缺的,并且有許多數(shù)組方法。對(duì)于忙碌的初學(xué)者,我選擇了10種最常見(jiàn)的數(shù)組方法,您必須學(xué)習(xí)這些方法以節(jié)省時(shí)間。
我為每個(gè)數(shù)組方法提供了一個(gè)示例用例,以便于理解。
陣列映射()
通過(guò)調(diào)用回調(diào)函數(shù),map() 方法循環(huán)訪問(wèn)原始數(shù)組,并對(duì)數(shù)組的每個(gè)元素調(diào)用該函數(shù)。由于它是一種非突變方法,因此它會(huì)創(chuàng)建一個(gè)新數(shù)組,并且不會(huì)更改原始數(shù)組。簡(jiǎn)而言之,當(dāng)您要轉(zhuǎn)換數(shù)組中的所有值時(shí),會(huì)使用它。
示例用例
您有一個(gè)客戶(hù)列表,您有他們的名字,并且您希望將每個(gè)客戶(hù)的姓氏設(shè)置為“Smith”。
Array.forEach()
這與 map() 方法非常相似,它也在每個(gè)元素上執(zhí)行一次函數(shù),除了它改變了原來(lái)的數(shù)組,它不會(huì)創(chuàng)建一個(gè)新的數(shù)組。
示例用例
您希望打印列表中每個(gè)客戶(hù)的姓名,并且不需要新陣列。
數(shù)組.reduce()
Reduce 是最強(qiáng)大和最靈活的方法,因?yàn)樗捎糜谥匦聦?shí)現(xiàn)所有現(xiàn)有的數(shù)組方法,但它也是最難理解的。
reduce 方法接受兩個(gè)參數(shù):回調(diào)和初始值 (),回調(diào)采用 4 個(gè)參數(shù)、累加器、當(dāng)前值、當(dāng)前索引和初始值。簡(jiǎn)而言之,此方法將數(shù)組簡(jiǎn)化為返回一個(gè)值。arr.reduce(callback, initialValue
由于討論 reduce() 方法的所有好處需要一篇單獨(dú)的文章,因此我在這里只討論兩個(gè)代表性的用例。
示例用例
在沒(méi)有初始值的情況下計(jì)算總和
2. 拼合數(shù)組
數(shù)組過(guò)濾器()
顯然,當(dāng)您需要過(guò)濾掉值時(shí),會(huì)使用 filter() 方法。只需將測(cè)試函數(shù)作為回調(diào)傳遞,它將返回一個(gè)等于 true 的值以保留元素。
示例用例
您想從客戶(hù)列表中刪除特定客戶(hù),例如瑪麗。因此,在回調(diào)中,您保留每個(gè)不等于瑪麗的名字。
數(shù)組.排序()
方法名稱(chēng)本身就說(shuō)明了這一點(diǎn),它用于對(duì)數(shù)組進(jìn)行排序。
示例用例
您有一個(gè)列出每個(gè)客戶(hù)的年齡的數(shù)組,您希望按升序?qū)ζ溥M(jìn)行排序。
請(qǐng)注意,使用 array.sort() 而不帶回調(diào)將產(chǎn)生不同的結(jié)果,該結(jié)果僅引用第一個(gè)數(shù)字進(jìn)行排序,而不引用實(shí)際值。
Array.includes()
includes() 方法通過(guò)獲取值來(lái)確定數(shù)組是否包含某些元素。它返回一個(gè)布爾值。
示例用例
您想知道數(shù)組中是否包含 Mary。
陣列查找()
使用 find() 方法,我們能夠在數(shù)組中搜索某些內(nèi)容。它采用一個(gè)測(cè)試函數(shù),并返回提供的數(shù)組中與條件匹配的第一個(gè)元素。換句話說(shuō),它不會(huì)返回滿(mǎn)足測(cè)試的所有元素。
示例用例
您需要獲取長(zhǎng)度為四個(gè)字母的客戶(hù)名稱(chēng)。
數(shù)組索引()
這是在數(shù)組中搜索某些內(nèi)容的另一種方法,但這次它返回索引。如果在數(shù)組中找不到該元素,則返回 -1。
示例用例
你想檢查Jane是否在你的客戶(hù)名單上,這樣你就可以給她定制折扣。
數(shù)組.一些()
some() 方法測(cè)試數(shù)組中是否至少有一個(gè)元素與特定條件匹配。它與 include 方法不同,因?yàn)樗枰獥l件或測(cè)試函數(shù),但不需要值。如果滿(mǎn)足條件,則返回 true,否則為 false。
示例用例
當(dāng)您想要檢查是否至少有一個(gè)客戶(hù)的名字以“s”開(kāi)頭時(shí),請(qǐng)使用此方法。
Array.concat()
當(dāng)您想要合并兩個(gè)或多個(gè)數(shù)組時(shí),將使用 contact() 方法。
示例用例
您有兩個(gè)數(shù)組,一個(gè)包含男性客戶(hù),另一個(gè)包含女性客戶(hù),現(xiàn)在您要合并這些數(shù)組,以便一個(gè)數(shù)組包含所有客戶(hù)。