日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
JavaScript數(shù)組方法三板斧,100%的開(kāi)發(fā)都得知道

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

成都創(chuàng)新互聯(lián)是專業(yè)的訥河網(wǎng)站建設(shè)公司,訥河接單;提供網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行訥河網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

1. join()方法

2. split()方法

3. sort()方法

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

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

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

1. Join()方法

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

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

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

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

 
 
 
 
  1. array.join(separator) 

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

如果沒(méi)有傳遞參數(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)之間沒(méi)有任何空格,而在 string8中它則有空格。

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

2. Split()方法

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

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

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

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

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

 
 
 
 
  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' ] 

我們逐一來(lái)看以下的例子:

  • array1, string1:只要有逗號(hào)就可分成一個(gè)數(shù)組。
  • arrayWithLimit: 已經(jīng)指定了一處限制,因此生成的數(shù)組只有四個(gè)起始元素,這即是限制。
  • arrayWithoutSeperator: 前文已經(jīng)討論過(guò),如果沒(méi)有給出分隔符,整個(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ǔ)庫(kù)的代碼共享到評(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)問(wèn)題。

因?yàn)?,如果要?duì)數(shù)字進(jìn)行排序,比如說(shuō)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ù)來(lái)解決這一問(wèn)題,這種方法將函數(shù)傳遞給語(yǔ)法: 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ù),而不是上文語(yǔ)法中給出的傳統(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的值。


網(wǎng)站欄目:JavaScript數(shù)組方法三板斧,100%的開(kāi)發(fā)都得知道
文章轉(zhuǎn)載:http://www.5511xx.com/article/djhpsie.html