自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript數(shù)組方法三板斧,100%的開發(fā)都得知道

開發(fā) 前端
為什么每個JavaScript開發(fā)人員都要知道這些方法?因為數(shù)組是代碼中的重要元素,而這些方法可以讓代碼更優(yōu)雅和更具代表性。

[[273666]]

在該文中,將介紹以下三種方法:

1. join()方法

2. split()方法

3. sort()方法

為什么每個JavaScript開發(fā)人員都要知道這些方法?因為數(shù)組是代碼中的重要元素,而這些方法可以讓代碼更優(yōu)雅和更具代表性。

在沒有這些方法的情況下也可以運行項目,但為此必須編寫不必要的代碼行,而這些代碼行原先就沒有用處。

那就開始吧,首先了解一下 join() 和 split() 這兩種基本的方法,再討論 sort() 方法。

1. Join()方法

想象一下這樣的場景:用戶在數(shù)組中輸入一些值,然后想把這些值看作消息或字符串。

這就需要用到 join() 方法,它可以把數(shù)組中的元素轉(zhuǎn)換成字符串。

toString() 也用于將字符串轉(zhuǎn)換為數(shù)組,但是采用 join() 方法,則可以使用separator參數(shù),因此最好使用 join()方法。

 join()語法很簡單,只需使用:

  1. array.join(separator) 

此處separator在傳遞參數(shù)中是可選的,用于定義數(shù)組中想要分隔的元素,可以是空格、圓點、逗號和單詞等。

如果沒有傳遞參數(shù),則其元素需用逗號分隔。

看一個實例:

  1. const array1=[1,2,3,'My','Name','is','Ney'
  2. const string1=array1.join() 
  3.  
  4. const string2=array1.join(''
  5.  
  6. const string3=array1.join(','
  7.  
  8. const string4=array1.join('and'
  9.  
  10. const string5=array1.join('-'
  11.  
  12. const string6=array1.join('='
  13.  
  14. const string7=array1.join(':'
  15.  
  16. const string8=array1.join(' '
  17.  
  18.  
  19. console.log(array1) 
  20. //  [ 1, 2, 3, 'My''Name''is''Ney' ] 
  21.  
  22. console.log(string1) 
  23. // 1,2,3,My,Name,is,Ney 
  24.  
  25. console.log(string2) 
  26. //123MyNameisNey 
  27.  
  28. console.log(string3) 
  29. // 1,2,3,My,Name,is,Ney 
  30.  
  31. console.log(string4) 
  32. // 1and2and3andMyandNameandisandNey 
  33.  
  34. console.log(string5) 
  35. // 1-2-3-My-Name-is-Ney 
  36.  
  37. console.log(string6) 
  38. // 1=2=3=My=Name=is=Ney 
  39.  
  40. console.log(string7) 
  41. // 1:2:3:My:Name:is:Ney 
  42.  
  43. console.log(string8) 
  44. // 1 2 3 My Name is Ney 

上面舉了好幾個例子,其中要重點討論的是 string8 和 string2。

在 string2中,引號之間沒有任何空格,而在 string8中它則有空格。

可以在引號中放置任意數(shù)量的空格,而結(jié)果也會隨之改變。

2. Split()方法

因此,我們已經(jīng)知道數(shù)組中的元素可以轉(zhuǎn)換為字符串。

可以把數(shù)組中的字符串轉(zhuǎn)換為元素嗎?這就是 split() 方法的用處。

split() 方法在如下場景中使用起來十分方便,即必須輸入消息并查看其中是否包含特定的單詞。使用 includes() 方法可以通過把單詞轉(zhuǎn)換成數(shù)組,輕松地實現(xiàn)這一目的。下文很快會提及。

在把字符串轉(zhuǎn)換為數(shù)組后,仍然可以執(zhí)行其他的許多功能。從技術(shù)角度看, split() 是一種字符串方法,但我會此處有所提及。

首先看一下 split() 的語法:

  1. string.split(separator, limit) 
  • Separator指定用于拆分字符串的字符。如果留有空格,則整個字符串將轉(zhuǎn)換為數(shù)組中的單個元素。
  • Limit是一個可選參數(shù),很少使用。它是一個整數(shù),指定拆分的數(shù)量。Limit拆分后的項目不會包含在該數(shù)組中。

看一些實例:

這里會使用上文提到的 join() 方法例子,并用 split() 方法轉(zhuǎn)換成字符串。

  1. const string1 = `1,2,3,My,Name,is,Ney` 
  2.  
  3. const array1 = string1.split(','
  4. const arrayWithLimit = string1.split(',', 4) 
  5. const arrayWithoutSeperator = string1.split() 
  6.  
  7. console.log(array1, arrayWithLimit, arrayWithoutSeperator) 
  8. //[ '1''2''3''My''Name''is''Ney' ] [ '1''2''3''My' ] [ '1,2,3,My,Name,is,Ney' ] 
  9.  
  10.  
  11.  
  12. const string2 = `123MyNameisNey` 
  13. const array2 = string2.split(''
  14. console.log(array2)                                        
  15. //[ '1',  ',',  '2',  ',',  '3',  ',',  'M',  'y',  ',',  'N',  'a',  'm',  'e',  ',',  'i',  's',  ',',  'N',  'e''y' ] 
  16.  
  17. const string3 = `1,2,3,My,Name,is,Ney` 
  18. const array3 = string3.split(','
  19. console.log(array3)                                    //[ '1''2''3''My''Name''is''Ney' ] 
  20.  
  21.  
  22. const string4 = `1and2and3andMyandNameandisandNey` 
  23. const array4 = string4.split('and'
  24. console.log(array4)                                      //[ '1''2''3''My''Name''is''Ney' ] 
  25.  
  26.  
  27. const string5 = `1-2-3-My-Name-is-Ney` 
  28. const array5 = string5.split('-'
  29. console.log(array5)                                      //[ '1''2''3''My''Name''is''Ney' ] 
  30.  
  31.  
  32. const string6 = `1=2=3=My=Name=is=Ney` 
  33. const array6 = string.split('='
  34. console.log(array6)                                      //[ '1''2''3''My''Name''is''Ney' ] 
  35.  
  36.  
  37. const string7 = `1:2:3:My:Name:is:Ney` 
  38. const array7 = string7.split(':'
  39. console.log(array7)                                      //[ '1''2''3''My''Name''is''Ney' ] 
  40.  
  41.  
  42. const string8 = `1 2 3 My Name is Ney` 
  43. const array8 = string8.split(' '
  44. console.log(array8)                                      //[ '1''2''3''My''Name''is''Ney' ] 

我們逐一來看以下的例子:

  • array1, string1:只要有逗號就可分成一個數(shù)組。
  • arrayWithLimit: 已經(jīng)指定了一處限制,因此生成的數(shù)組只有四個起始元素,這即是限制。
  • arrayWithoutSeperator: 前文已經(jīng)討論過,如果沒有給出分隔符,整個字符串將轉(zhuǎn)換為數(shù)組的單個元素。
  • array2:由于參數(shù)中的引號為空, split() 可分隔每個字符,包括空格符、逗號和任何其他可能存在的字符。
  • array4:可以看到字符串中缺少所有“and”,并且遺漏的字符串成為了數(shù)組的單個元素。如果參數(shù)中只有一個字母,則結(jié)果將得到諸多元素和一個缺少指定元素的字符串??梢試L試一下。因此,使用單詞或字符串作為分隔符時,要十分小心。
  • array3, array5, array, array7, array8:拆分了上述所有內(nèi)容后,可以生成相同的字符串,這是正確的操作,因為我們只對相應(yīng)字符撤消 了join() 。

練習(xí):使用join(), split(), and reverse()創(chuàng)建一個函數(shù)

現(xiàn)在可以練習(xí)使用 join(), split(), 和 reverse() 創(chuàng)建函數(shù),檢查用戶輸入字符串是否為回文結(jié)構(gòu)。

如果還不熟悉 reverse() 方法,就記住它只是反轉(zhuǎn)數(shù)組的元素。

例如:

  1. const num = [1,2,3,4,5,6] 
  2.  
  3. const reverseNum = num.reverse() 
  4.  
  5. console.log(reverseNum)                    //[ 6, 5, 4, 3, 2, 1 ] 

以上就是 split() 方法。嘗試練習(xí)一下,可把自己的GitHub存儲庫的代碼共享到評論區(qū)。

3. Sort()方法

正如名字所述, sort() 方法是對數(shù)組中的元素進行排序。

默認情況下, sort() 函數(shù)將值排序為字符串。

  1. let greekLetter = ['beta','alpha','delta','gamma']; 
  2. console.log(greekLetter.sort())     //  [ 'alpha''beta''delta''gamma' ] 

對數(shù)字進行排序時,會出現(xiàn)問題。

因為,如果要對數(shù)字進行排序,比如說100和25,100將出現(xiàn)在25之前,因為100中的1出現(xiàn)在25中的2之前。

  1. let num1 = [25, 100, 23] 
  2. console.log(num1.sort())                       //[ 100, 23, 25 ] 
  3.  
  4.  
  5. let num2 = ['25''100''23'
  6. console.log(num2.sort())                      //[ '100''23''25' ] 

可以使用比較函數(shù)來解決這一問題,這種方法將函數(shù)傳遞給語法: function(a, b){return a — b}

  1. let num = [25, 100, 23] 
  2. console.log(num.sort((a, b) => { 
  3.     return a - b 
  4. })) 
  5.  
  6. //[ 23, 25, 100 ] 

(我們使用了箭頭函數(shù),而不是上文語法中給出的傳統(tǒng)函數(shù).)

首先要理解這個比較函數(shù)。它應(yīng)返回負值、零值還是正值,具體取決于參數(shù)——a更大還是b更大。

當 sort() 函數(shù)比較兩個值時,它會將值發(fā)送至比較函數(shù),并根據(jù)返回值(負值、零值或正值)對值進行排序。

  • 如果結(jié)果為負,則a排在b之前。
  • 如果結(jié)果為正,則b排在a之前。
  • 如果結(jié)果為0,則兩個值的排序順序不會發(fā)生改變。
  • 比較函數(shù)比較數(shù)組中的所有值,一次比較兩個值(a,b)。

· 比較25和100時, sort() 方法調(diào)用比較函數(shù)(25,100)。

· 函數(shù)計算25-100(a,b),且在結(jié)果為負(-75)時,sort函數(shù)將25排為低于100的值。

責(zé)任編輯:武曉燕 來源: 讀芯術(shù)
相關(guān)推薦

2013-07-03 11:13:58

DevOps

2014-07-29 11:25:18

LinuxMySQL

2011-03-09 15:23:25

Windows Ser

2017-03-23 10:54:58

LINUXMYSQL優(yōu)化

2020-09-03 15:32:08

Wireshark數(shù)據(jù)包分析

2017-08-21 23:50:45

線上內(nèi)存OOM

2020-11-18 08:17:14

Java源碼Class

2019-05-30 14:30:42

技術(shù)管理架構(gòu)

2009-02-19 10:20:00

2012-11-08 16:05:23

2020-03-09 13:37:49

Serverless無服務(wù)器騰訊云

2022-07-22 09:55:29

軟件工程師

2010-12-29 10:29:31

Linux磁盤管理dfdu

2018-06-19 08:50:15

崗位總監(jiān)管理

2022-05-07 11:47:36

服務(wù)器架構(gòu)

2020-03-19 15:30:08

JavaScript數(shù)組字符串

2021-02-15 22:07:18

項目策略模式

2022-03-29 18:20:10

戴爾

2010-05-28 09:17:45

ARM服務(wù)器

2021-06-25 15:19:13

攻防演練
點贊
收藏

51CTO技術(shù)棧公眾號