整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Javascript數(shù)組系列四之?dāng)?shù)組的轉(zhuǎn)換與排序So

          Javascript數(shù)組系列四之?dāng)?shù)組的轉(zhuǎn)換與排序Sort方法

          avascirpt 數(shù)組中的方法,數(shù)組的轉(zhuǎn)換是我們?cè)陧?xiàng)目的開發(fā)過程中,數(shù)據(jù)類型之間的轉(zhuǎn)換有著非常重要的作用,而數(shù)組轉(zhuǎn)換成其他數(shù)據(jù)類型是我們常見的一種。toString該方法是對(duì)數(shù)組轉(zhuǎn)換成字符串,數(shù)組的每一個(gè)元素都會(huì)調(diào)用 「toString」方法 ,返回一個(gè)新字符串。該字符串是以數(shù)組中的每一個(gè)元素的字符串形式拼接而成,且元素之間用逗號(hào)分隔。

          join該方法也是將一個(gè)數(shù)組轉(zhuǎn)換成字符串,返回一個(gè)新的字符串。方法會(huì)將數(shù)組的每一個(gè)元素轉(zhuǎn)換成字符串,然后再用給定的字符去拼接成一個(gè)新的字符串返回給我們。該方法接受一個(gè)參數(shù):就是我們給定的分隔符。array.join(separator)的語法看上去比較簡(jiǎn)單,但是有幾點(diǎn)我們需要注意

          • 參數(shù)是可選的,如果沒有參數(shù)默認(rèn)為逗號(hào)(,)
          • 參數(shù)可以為空字符串(""),這時(shí)會(huì)返回一個(gè)沒有任何字符分隔的字符串
          • 如果數(shù)組的元素中有 undefined 或者null,則會(huì)被轉(zhuǎn)化為空字符串("")
          • 參數(shù)可以為空格,元素會(huì)以空格分隔

          數(shù)組的排序用到的場(chǎng)景有很多,比如表格的升序與降序,數(shù)據(jù)從大到小排列或者按照某些規(guī)則去排列等等都會(huì)用到排序,如何有效到使用數(shù)據(jù)到排序方法,首先你要對(duì)這些方法有一定的了解才能使用比較恰當(dāng)?shù)姆椒āeverse從名稱我們應(yīng)該就能猜出該方法的作用,該方法就是將數(shù)組中的元素顛倒順序。

          sort該方法對(duì)數(shù)組的元素進(jìn)行排序,默認(rèn)情況下按照升序排列。先看看下面兩個(gè)例子

          你會(huì)發(fā)現(xiàn)排序規(guī)則并不是我們想想的那樣,究竟是怎么一回事情呢?其實(shí)在「sort」方法執(zhí)行的時(shí)候,數(shù)組的每個(gè)元素會(huì)先執(zhí)行一次 toString() 方法,然后在根據(jù)字符串的 Unicode 編碼進(jìn)行排序。

          想使用JavaScript,實(shí)現(xiàn)冒泡排序的動(dòng)態(tài)效果,如下圖:

          冒泡排序

          要實(shí)現(xiàn)該功能,首先準(zhǔn)備一個(gè) html 模板,用來生成不同長(zhǎng)度的進(jìn)度條,來直觀的展示不同大小的數(shù)字:

          html 模板

          然后準(zhǔn)備好幾個(gè)函數(shù):

          隨機(jī)生成數(shù)字的函數(shù):

          生成 length 個(gè)大小在 m 和 n 之間的數(shù)字

          初始化長(zhǎng)度條的函數(shù)

          先獲取模板: let template=document.getElementById('template').innerHTML;

          初始化長(zhǎng)度條函數(shù)

          對(duì)數(shù)字進(jìn)行排序的函數(shù):

          這里準(zhǔn)備了兩個(gè)排序函數(shù),一個(gè)是冒泡排序,一個(gè)是選擇排序:

          冒泡排序

          選擇排序

          以將亂序的數(shù)組進(jìn)行排序,使其升序或降序排列。

          以下是使用 JavaScript 編寫的升序排列和降序排列的示例代碼。

          升序排列:

          let unsortedArray=[4, 6, 1, 9, 2, 5, 8, 3];  
          let sortedArray=[];
          
          for (let i=0; i < unsortedArray.length; i++) {  
            sortedArray.push(unsortedArray[i]);  
          }
          
          console.log(sortedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9]  

          降序排列:

          let unsortedArray=[9, 8, 7, 6, 5, 4, 3, 2, 1];  
          let sortedArray=[];
          
          for (let i=0; i < unsortedArray.length; i++) {  
            sortedArray.push(unsortedArray[i]);  
          }
          
          console.log(sortedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9]  

          在 JavaScript 中,可以使用 Array.sort() 方法對(duì)數(shù)組進(jìn)行排序。該方法接受兩個(gè)參數(shù):要排序的數(shù)組和比較函數(shù)。比較函數(shù)用于比較兩個(gè)元素的大小關(guān)系,如果比較對(duì)象是 true,則返回 0,否則返回 -1。

          以下是升序排列的示例代碼:

          let unsortedArray=[4, 6, 1, 9, 2, 5, 8, 3];  
          let sortedArray=[];
          
          for (let i=0; i < unsortedArray.length; i++) {  
            sortedArray.push(unsortedArray[i]);  
          }
          
          sortedArray.sort((a, b)=> a - b);
          
          console.log(sortedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9]  
          

          在上面的代碼中,比較函數(shù)使用 a - b 表示兩個(gè)元素之間的大小關(guān)系。sort() 方法按升序?qū)?shù)組進(jìn)行排序,將其轉(zhuǎn)換為 [1, 2, 3, 4, 5, 6, 7, 8, 9]。


          主站蜘蛛池模板: 国产在线不卡一区二区三区| 麻豆AV一区二区三区| 国产在线精品观看一区| 精品亚洲AV无码一区二区三区| 成人区人妻精品一区二区不卡视频 | 亚洲AV色香蕉一区二区| 性色av无码免费一区二区三区 | 在线观看中文字幕一区| 精品中文字幕一区二区三区四区| 无码日韩AV一区二区三区| 国产免费一区二区三区VR| 日韩精品人妻av一区二区三区| 影院无码人妻精品一区二区| 99精品国产高清一区二区三区 | 久久毛片免费看一区二区三区| 国产乱码精品一区二区三区中文| 精品欧洲av无码一区二区| 无码精品人妻一区| 国产成人综合一区精品| 上原亚衣一区二区在线观看| 亚洲一区二区三区不卡在线播放| 日韩一区二区三区精品| 精品午夜福利无人区乱码一区| 好吊视频一区二区三区| 成人H动漫精品一区二区| 一区二区在线观看视频| 一级特黄性色生活片一区二区| 99精品国产高清一区二区麻豆| 日本大香伊一区二区三区| 免费无码一区二区| 女女同性一区二区三区四区| 精品无码AV一区二区三区不卡| 国产日韩高清一区二区三区 | 麻豆亚洲av熟女国产一区二| 农村人乱弄一区二区| 中文国产成人精品久久一区| 久久久久人妻一区精品| 四虎一区二区成人免费影院网址| 精品国产一区二区三区在线| 亚洲av无码片区一区二区三区| 亚洲综合一区二区国产精品|