如果你想成為一名優(yōu)秀的JavaScript開發(fā)人員,為什么你必須學(xué)習(xí)它們。
當(dāng)我開始學(xué)習(xí)JavaScript時(shí),我發(fā)現(xiàn)了一個(gè)名為“為什么你不應(yīng)該在你的代碼中使用for”的視頻。當(dāng)我讀到這個(gè)標(biāo)題時(shí),我感到震驚。我是一個(gè)初學(xué)者程序員,在很多情況下使用for循環(huán)對(duì)我來(lái)說(shuō)是必要的。然而,視頻中的男性使用了一個(gè)each。我不知道那是什么,但看起來(lái)很棒。
時(shí)間流逝,在我成為JavaScript大師的旅程中,我發(fā)現(xiàn)這個(gè)forEach(以及許多其他方法)是一個(gè)數(shù)組方法。我發(fā)現(xiàn),在大多數(shù)情況下使用這些方法,您可以提高代碼的可讀性并減少代碼的行數(shù)(特別是如果您使用我在本文中解釋的箭頭函數(shù))。所以,如果你能掌握它們,你就會(huì)寫出更好的代碼。
如何聲明使用這些數(shù)組方法?
你不必這樣做!這些方法是腳本中數(shù)組類型對(duì)象的一部分。因此,您只需創(chuàng)建一個(gè)新數(shù)組并調(diào)用這些方法。
在腳本中,數(shù)組到底是什么?
在JavaScript中,數(shù)組是一個(gè)對(duì)象,它允許我們一次存儲(chǔ)多個(gè)元素變量。我們可以使用一對(duì)方括號(hào)聲明一個(gè)數(shù)組。在數(shù)組中,元素將由逗號(hào)分隔,您可以存儲(chǔ)不同類型的元素。您可以創(chuàng)建字符串?dāng)?shù)組、數(shù)字?jǐn)?shù)組、布爾數(shù)組等。您可以創(chuàng)建一個(gè)混合使用這些類型的數(shù)組。例如:
數(shù)組方法示例
有很多數(shù)組方法。如果您想了解它們,可以查看官方文檔。無(wú)論哪種方式,我都會(huì)向你發(fā)現(xiàn)那些我認(rèn)為在我的經(jīng)驗(yàn)中最重要的方法,我不會(huì)提到基本的數(shù)組方法或?qū)傩?,如push(),pop(),sort()或長(zhǎng)度。
反轉(zhuǎn)()
開發(fā)人員必須做的一件基本事情是反轉(zhuǎn)數(shù)組。這是基本的,使用JavaScript,你只需要一條指令就可以做到這一點(diǎn)。
請(qǐng)務(wù)必考慮此方法會(huì)修改原始數(shù)組。因此,如果您嘗試打印上述示例中的數(shù)組,您將獲得相同的輸出[3,2,1]。
如果您不想修改原始數(shù)組,則必須使用跨頁(yè)運(yùn)算符 (...)
連接()
如果你想合并兩個(gè)數(shù)組,你可以忘記使用循環(huán)和大量的push()?,F(xiàn)在你可以用連接()來(lái)做到這一點(diǎn)。此方法將復(fù)制數(shù)組中的元素,我們將這些元素作為參數(shù)傳遞給數(shù)組中的元素,我們稱之為concat()。我們也可以將其與嵌套數(shù)組一起使用。
切片()
使用 slice() 方法,您可以在新的數(shù)組對(duì)象中創(chuàng)建數(shù)組一部分的副本。指令的語(yǔ)法為:
arr.slice(startIndex , endIndex)
如果我們不提供起始索引或結(jié)束索引,則該方法將作為值 0(對(duì)于開始索引)和 de 最后索引(對(duì)于結(jié)束索引)。如果您也想以相反的方式訪問(wèn)第二個(gè)參數(shù),則可以對(duì)第二個(gè)參數(shù)使用負(fù)索引。
foreach()
使用 forEach() 方法,您將能夠?yàn)槊總€(gè)數(shù)組元素提供一個(gè)函數(shù)。想象一下,你必須將每個(gè)元素乘以二,你可以使用 forEach()。
如果要?jiǎng)?chuàng)建一個(gè)新數(shù)組,可以使用 map() 方法。
過(guò)濾器()
您是否曾經(jīng)必須僅使用滿足條件的元素創(chuàng)建新數(shù)組?如果你的答案是肯定的,我敢肯定你創(chuàng)建了一個(gè)循環(huán)并使用if。好吧,它已經(jīng)過(guò)去了,現(xiàn)在是現(xiàn)在,你必須知道firter()方法。使用此指令,您將創(chuàng)建一個(gè)新數(shù)組,其中包含傳遞作為參數(shù)傳遞的條件的所有元素。
減少()
reduce() 方法執(zhí)行一個(gè)化簡(jiǎn)器函數(shù)(將當(dāng)前狀態(tài)和操作作為參數(shù)并返回新?tīng)顟B(tài)結(jié)果的函數(shù))。語(yǔ)法為:
arr.reduce(callback(accumulator, currentValue), initialValue)
累加器:回調(diào)返回的累積值。
當(dāng)前值:從數(shù)組傳遞的當(dāng)前元素。
初始值(可選):將在第一次調(diào)用時(shí)傳遞給 callback() 的值。例如,如果我們的計(jì)數(shù)以 10 開頭,則初始值將為 10。
為了不讓它太長(zhǎng),我在本文中沒(méi)有提到許多其他方法。但是,如果您想了解更多信息,我建議您搜索包含(),索引()和查找索引()。
我為什么要考慮學(xué)習(xí)這個(gè)?
因?yàn)槟阆氤蔀橐粋€(gè)更好的開發(fā)人員。
您剛剛看到,使用 JavaScript 數(shù)組方法可以減少我們必須在項(xiàng)目中編寫的代碼行數(shù)。您可以提高代碼的可讀性,您將了解有關(guān)JavaScript語(yǔ)言的更多信息。
此外,由于它們是語(yǔ)言的固有特性,因此程序員使用它們非常普遍。因此,您很少不使用它們并用循環(huán)填充JavaScript代碼。
您認(rèn)為哪種方法最有用?你還用JavaScript的哪些其他奇怪的功能來(lái)改進(jìn)你的代碼?