欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js排序與重組的實(shí)例講解

 更新時(shí)間:2017年08月28日 07:48:06   投稿:jingxian  
下面小編就為大家?guī)硪黄猨s排序與重組的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

前幾天同學(xué)發(fā)給我一個(gè)問題,思路想整理一下,也供大家參考。實(shí)際上這道題本質(zhì)就是考察的是去重與排序的問題。好了閑話少說,上題。

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ù)組,簡單粗暴。哈哈。采用了js中的indexof()方法,indexof()方法原意指的是可返回某個(gè)指定的字符串在字符中首次出現(xiàn)的位置。但是它也有這樣的一個(gè)性質(zhì),注意:如果要檢索的字符串沒有出現(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()方法;接下來判斷原數(shù)組的數(shù)是否在新數(shù)組arr1中,if(arr1.indexOf(arr[i])==-1) arr1.push(arr[i]);

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

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

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

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

以上這篇js排序與重組的實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 原生js仿瀏覽器滾動(dòng)條效果

    原生js仿瀏覽器滾動(dòng)條效果

    本文主要介紹了原生js仿瀏覽器滾動(dòng)條效果的實(shí)例。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • JavaScript設(shè)置、獲取、清除單值和多值cookie的方法

    JavaScript設(shè)置、獲取、清除單值和多值cookie的方法

    cookie 是存儲(chǔ)于訪問者的計(jì)算機(jī)中的變量。每當(dāng)同一臺(tái)計(jì)算機(jī)通過瀏覽器請(qǐng)求某個(gè)頁面時(shí),就會(huì)發(fā)送這個(gè) cookie。你可以使用 JavaScript 來創(chuàng)建和取回 cookie 的值,本文通過一段代碼給大家介紹js設(shè)置、獲取、清除單值和多值cookie的方法,需要的朋友一起學(xué)習(xí)吧
    2015-11-11
  • 深入理解移動(dòng)前端開發(fā)之viewport

    深入理解移動(dòng)前端開發(fā)之viewport

    這篇文章主要介紹了移動(dòng)前端開發(fā)之viewport的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • JS利用?clip-path?實(shí)現(xiàn)動(dòng)態(tài)區(qū)域裁剪功能

    JS利用?clip-path?實(shí)現(xiàn)動(dòng)態(tài)區(qū)域裁剪功能

    這篇文章主要介紹了JS利用?clip-path?實(shí)現(xiàn)動(dòng)態(tài)區(qū)域裁剪功能,文中主要通過使用 box-shadow 實(shí)現(xiàn),代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • javascript 處理事件綁定的一些兼容寫法

    javascript 處理事件綁定的一些兼容寫法

    javascript 事件綁定的一些兼容寫法整理非常不錯(cuò),感謝
    2009-12-12
  • javascript打印大全(打印頁面設(shè)置/打印預(yù)覽代碼)

    javascript打印大全(打印頁面設(shè)置/打印預(yù)覽代碼)

    打印頁面設(shè)置,打印頁面預(yù)覽在打印過程中經(jīng)常會(huì)遇到,網(wǎng)上搜集整理了一些實(shí)用的打印方法與大家分享,感興趣的朋友可以了解下哈
    2013-03-03
  • JS+CSS實(shí)現(xiàn)實(shí)用的單擊輸入框彈出選擇框的方法

    JS+CSS實(shí)現(xiàn)實(shí)用的單擊輸入框彈出選擇框的方法

    這篇文章主要介紹了JS+CSS實(shí)現(xiàn)實(shí)用的單擊輸入框彈出選擇框的方法,實(shí)例分析了javascript操作select及button的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 原生js二級(jí)聯(lián)動(dòng)效果

    原生js二級(jí)聯(lián)動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了原生js二級(jí)聯(lián)動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JavaScript中的console.dir()函數(shù)介紹

    JavaScript中的console.dir()函數(shù)介紹

    這篇文章主要介紹了JavaScript中的console.dir()函數(shù)介紹,console.dir主要用來dump某些對(duì)象的詳細(xì)信息,需要的朋友可以參考下
    2014-12-12
  • JS加載解析Markdown文檔過程詳解

    JS加載解析Markdown文檔過程詳解

    這篇文章主要介紹了JS加載解析Markdown文檔過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評(píng)論