成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript數組方法三板斧,100%的開發都得知道

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

[[273666]]

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

1. join()方法

2. split()方法

3. sort()方法

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

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

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

1. Join()方法

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

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

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

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

  1. array.join(separator) 

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

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

看一個實例:

  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中它則有空格。

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

2. Split()方法

因此,我們已經知道數組中的元素可以轉換為字符串。

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

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

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

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

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

看一些實例:

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

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

練習:使用join(), split(), and reverse()創建一個函數

現在可以練習使用 join(), split(), 和 reverse() 創建函數,檢查用戶輸入字符串是否為回文結構。

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

例如:

  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() 方法。嘗試練習一下,可把自己的GitHub存儲庫的代碼共享到評論區。

3. Sort()方法

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

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

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

對數字進行排序時,會出現問題。

因為,如果要對數字進行排序,比如說100和25,100將出現在25之前,因為100中的1出現在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' ] 

可以使用比較函數來解決這一問題,這種方法將函數傳遞給語法: 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 ] 

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

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

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

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

· 比較25和100時, sort() 方法調用比較函數(25,100)。

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

責任編輯:武曉燕 來源: 讀芯術
相關推薦

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優化

2020-09-03 15:32:08

Wireshark數據包分析

2017-08-21 23:50:45

線上內存OOM

2020-11-18 08:17:14

Java源碼Class

2019-05-30 14:30:42

技術管理架構

2009-02-19 10:20:00

2012-11-08 16:05:23

2020-03-09 13:37:49

Serverless無服務器騰訊云

2022-07-22 09:55:29

軟件工程師

2018-06-19 08:50:15

崗位總監管理

2010-12-29 10:29:31

Linux磁盤管理dfdu

2022-05-07 11:47:36

服務器架構

2021-02-15 22:07:18

項目策略模式

2022-03-29 18:20:10

戴爾

2020-03-19 15:30:08

JavaScript數組字符串

2019-11-14 08:34:08

LinuxMySQLCPU

2010-05-28 09:17:45

ARM服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久小视频 | 91极品欧美视频 | 曰韩三级| 在线精品一区二区 | 亚洲热在线视频 | 欧美区在线 | 久久精品色欧美aⅴ一区二区 | 国产分类视频 | av三级 | 国产精品久久久久久久久免费相片 | 亚洲精品1 | 日韩在线不卡 | 综合一区| 午夜日韩 | 成人蜜桃av| 亚洲福利 | 在线视频一区二区三区 | 欧美久久久久 | 成人福利在线视频 | 亚洲高清一区二区三区 | 免费网站在线 | 特黄一级| 免费亚洲视频 | 亚洲一二三区免费 | 亚洲v区 | 久久逼逼 | 精品久久久久久亚洲精品 | 亚洲日日操 | 国产成人精品久久二区二区91 | 久久久久久久久久久久91 | 国产99久久久国产精品 | 国产日韩精品久久 | 狠狠av| 精品一区二区三区电影 | 国产精品18久久久久久久 | 毛片一区| 成人精品鲁一区一区二区 | 亚洲国产精品99久久久久久久久 | 色偷偷人人澡人人爽人人模 | 久久久久久久久综合 | 欧美午夜激情在线 |