偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

[[273666]]

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

1. join()方法

2. split()方法

3. sort()方法

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

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

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

1. Join()方法

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

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

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

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

  1. array.join(separator) 

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

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

看一個(gè)實(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 

上面舉了好幾個(gè)例子,其中要重點(diǎn)討論的是 string8 和 string2。

在 string2中,引號(hào)之間沒有任何空格,而在 string8中它則有空格。

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

2. Split()方法

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

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

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

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

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

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

看一些實(shí)例:

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

練習(xí):使用join(), split(), and reverse()創(chuàng)建一個(gè)函數(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存儲(chǔ)庫的代碼共享到評(píng)論區(qū)。

3. Sort()方法

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

默認(rèn)情況下, sort() 函數(shù)將值排序?yàn)樽址?/p>

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

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

因?yàn)?,如果要?duì)數(shù)字進(jìn)行排序,比如說100和25,100將出現(xiàn)在25之前,因?yàn)?00中的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ù).)

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

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

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

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

· 函數(shù)計(jì)算25-100(a,b),且在結(jié)果為負(fù)(-75)時(shí),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

軟件工程師

2018-06-19 08:50:15

崗位總監(jiān)管理

2010-12-29 10:29:31

Linux磁盤管理dfdu

2022-05-07 11:47:36

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

2021-02-15 22:07:18

項(xiàng)目策略模式

2022-03-29 18:20:10

戴爾

2020-03-19 15:30:08

JavaScript數(shù)組字符串

2019-11-14 08:34:08

LinuxMySQLCPU

2010-05-28 09:17:45

ARM服務(wù)器
點(diǎn)贊
收藏

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