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ù)組的排序用到的場(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]。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。