溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

js中排序與重組的示例分析

發(fā)布時(shí)間:2021-07-23 11:32:47 來(lái)源:億速云 閱讀:137 作者:小新 欄目:web開(kāi)發(fā)

小編給大家分享一下js中排序與重組的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

示例:

js中排序與重組的示例分析

function input(req){
if(req<=100){
var arr=[],arr1=[];
for(var i=0;i<req;i++){
var num=parseInt(Math.random()*(1000-1)+1);
arr.push(num);
if(arr1.indexOf(arr[i])==-1)
arr1.push(arr[i]);

}
for(var n=0;n<arr1.length-1;n++){
for(var m=n+1;m<arr1.length;m++){
if(arr1[n]>arr1[m]){
var temp=arr1[n];
arr1[n]=arr1[m];
arr1[m]=temp;
}
}
}

console.log(arr.length);
console.log(arr.join(' ')); 

console.log(arr1.length);
console.log(arr1.join(' ')); 
}else{
alert("不好意思,你輸入的數(shù)已經(jīng)大于100了");
} 
}

解析:關(guān)于排序的,有冒泡排序,快速排序,插入排序,希爾排序,選擇排序,歸并排序,堆排序,基數(shù)排序,計(jì)數(shù)排序,桶排序等等。

關(guān)于數(shù)組去重的實(shí)現(xiàn)方法,常用的有遍歷數(shù)組,對(duì)象鍵值對(duì),數(shù)組下標(biāo)判斷,排序后相鄰去除法,優(yōu)化遍歷數(shù)組等等。

本題排序方法采用一種最基本的方法就是冒泡方法,冒泡方法實(shí)質(zhì)就是相鄰排序了,依次比較相鄰的兩個(gè)值,如果我比你小,我就在你前面,反之就在你后面,按照這種方法多次,直到順序正確。

去重的方法也是采用最基本的遍歷數(shù)組法,思路是新建立一個(gè)數(shù)組,值不在數(shù)組中,就填入數(shù)組,簡(jiǎn)單粗暴。哈哈。采用了js中的indexof()方法,indexof()方法原意指的是可返回某個(gè)指定的字符串在字符中首次出現(xiàn)的位置。但是它也有這樣的一個(gè)性質(zhì),注意:如果要檢索的字符串沒(méi)有出現(xiàn),則返回-1,這正是我們需要的。

看題干:N個(gè)1到1000之間的隨機(jī)整數(shù)(N小于等于100)

整數(shù):嗯嗯此時(shí)應(yīng)該想到這個(gè)parseInt()方法;

隨機(jī):想到了Math.random();

1到1000的隨機(jī)整數(shù): var num=parseInt(Math.random()*(1000-1)+1);這種組合的方法蠻有效果的。

填入數(shù)組:arr.push()方法;接下來(lái)判斷原數(shù)組的數(shù)是否在新數(shù)組arr1中,if(arr1.indexOf(arr[i])==-1) arr1.push(arr[i]);

填入數(shù)組的事已經(jīng)完成了,接下來(lái)就是排序的問(wèn)題了。冒泡(簡(jiǎn)單粗暴)。生成隨機(jī)數(shù)組的個(gè)數(shù),就用數(shù)組的長(zhǎng)度嘍,arr.length.

還有提到的是用空格隔開(kāi):join(' ');

在chrome,f12下跑的結(jié)果如下:

js中排序與重組的示例分析

去重和排序后的結(jié)果

js中排序與重組的示例分析

以上是“js中排序與重組的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

js
AI