成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS騷操作之?dāng)?shù)組快速排序

yanbingyun1990 / 2404人閱讀

摘要:來,今天我來教大家一個(gè)騷操作。我利用的就是數(shù)組的索引來排序的,大家都知道,索引就是從開始,然后依次遞增的。技術(shù)總結(jié)這個(gè)就是巧用了數(shù)組的索引,默認(rèn)就是一個(gè)從小到大的排序的特性。


如果你想要對(duì)數(shù)組排序,可能會(huì)去百度去搜,于是有很多人教你用冒泡,什么二分插入排序、堆排序,如果不太懂其中的代碼意思,很難看明白。來,今天我來教大家一個(gè)騷操作。

我利用的就是JS數(shù)組的索引來排序的,大家都知道,索引就是從0開始,然后依次遞增的。好了,廢話少說,開始擼了。

我們來上完整的代碼:

var arr = [1,4,2,5,21,3,44,12];//要排序的數(shù)組。

var res = [];//要返回的排序后的數(shù)組。

var arr1 = [];//中間用到的過渡數(shù)組

arr.forEach(a=>{ arr1[a] = 1; });

arr1.forEach((r,index)=>{

    if(r === 1){
         res.push(index);//通過push默認(rèn)是是升序,如果想降序可以采用unshift方法,或者在最后將數(shù)組反轉(zhuǎn)一下即可。
    }
})

console.log(res);

arr.forEach(a=>{

//這一步很關(guān)鍵,我們把要排序的數(shù)組的每一項(xiàng)當(dāng)作了中間過渡數(shù)組的索引,并賦值為1(這里不一定要是1,給一個(gè)特定的值就行)

arr1[a] = 1;

});

這時(shí)候arr1 的結(jié)果為: [empty, 1, 1, 1, 1, empty × 7, 1, empty × 8, 1, empty × 22, 1, empty × 10, 1]

這時(shí)候中間過渡數(shù)組arr1就有數(shù)據(jù)了,但是這個(gè)數(shù)組中有很多undefined,這時(shí)候我們?cè)僮鲎詈蟮呐懦秃昧恕?/p>

寫在最后:有人可能會(huì)提出來,如果數(shù)組中有重復(fù)項(xiàng),那這種排序是不是不行了,當(dāng)然可以, 做下處理,把重復(fù)的先拿到,重復(fù)了幾次,然后在最后的結(jié)果數(shù)組中通過splice(index,0,item);對(duì)數(shù)組進(jìn)行插入操作即可。

技術(shù)總結(jié):

這個(gè)就是巧用了數(shù)組的索引,默認(rèn)就是一個(gè)從小到大的排序的特性。這種方法簡(jiǎn)單易懂。

數(shù)組的基本方法的使用,像forEach push unshift reverse splice(這個(gè)splice可以做刪除,插入,修改) 等。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104177.html

相關(guān)文章

  • JS數(shù)組的幾個(gè)不low操作(3)

    摘要:序列文章面試之函數(shù)面試之對(duì)象前言本文主要從應(yīng)用來講數(shù)組的一些騷操作如一行代碼扁平化維數(shù)組數(shù)組去重求數(shù)組最大值數(shù)組求和排序?qū)ο蠛蛿?shù)組的轉(zhuǎn)化等上面這些應(yīng)用場(chǎng)景你可以用一行代碼實(shí)現(xiàn)扁平化維數(shù)組終極篇是扁平數(shù)組的表示維度值為時(shí)維度為無限大開始篇實(shí)質(zhì) showImg(https://segmentfault.com/img/bVbpRMS?w=1858&h=1286); 序列文章 JS面試之函數(shù)...

    fish 評(píng)論0 收藏0
  • js操作罵人不帶臟

    摘要:讓我們快速的復(fù)習(xí)一下在中一共有兩種類型的值原始值和對(duì)象值原始值有布爾值數(shù)字還有字符串其他的所有值都是對(duì)象類型的值包括數(shù)組和函數(shù)類型轉(zhuǎn)化先按運(yùn)算符來分一下類減號(hào),乘號(hào),肯定是進(jìn)行數(shù)學(xué)運(yùn)算,所以操作數(shù)需轉(zhuǎn)化為類型。 前言 很多小伙伴們覺得javaScript很簡(jiǎn)單,下面的這行 javaScript代碼可能會(huì)讓你懷疑人生。 (!(~+[])+{})[--[~+][+[]]*[~+[]] +...

    Sunxb 評(píng)論0 收藏0
  • js 排序算法快速排序

    摘要:快速排序是一種劃分交換排序??焖倥判蚧诿芭葸f歸分治。他在大數(shù)據(jù)情況下是最快的排序算法之一,平均事件復(fù)雜度很低而且前面的系數(shù)很小,在大量隨機(jī)輸入的情況下最壞情況出現(xiàn)的概率是極小的。 快速排序是一種劃分交換排序。它采用了一種分治的策略,通常稱其為分治法。 分治法的基本思想是:將原問題分解為若干個(gè)規(guī)模更小但結(jié)構(gòu)與原問題相似的子問題。遞歸地解這些子問題,然后將這些子問題的解組合為原問題的解。...

    Eidesen 評(píng)論0 收藏0
  • JavaScript專題解讀 v8 排序源碼

    摘要:插入排序是穩(wěn)定的算法。所以準(zhǔn)確的說,當(dāng)數(shù)組長度大于的時(shí)候,采用了快速排序和插入排序的混合排序方法。在對(duì)數(shù)組進(jìn)行了一次快速排序后,然后對(duì)兩個(gè)子集分別進(jìn)行了插入排序,最終修改數(shù)組為正確排序后的數(shù)組。 JavaScript 專題系列第二十篇,也是最后一篇,解讀 v8 排序源碼 前言 v8 是 Chrome 的 JavaScript 引擎,其中關(guān)于數(shù)組的排序完全采用了 JavaScript 實(shí)...

    princekin 評(píng)論0 收藏0
  • 用好JS 原生API系列數(shù)組

    摘要:函數(shù)的因?yàn)橐矒碛袑傩?,所以其被稱為類數(shù)組對(duì)象。方法數(shù)組的拼接,,指被拼接的對(duì)象數(shù)組,為數(shù)組。如果為負(fù),則將其視為,其中為數(shù)組的長度。而提供了數(shù)組反轉(zhuǎn)和排序來對(duì)數(shù)組進(jìn)行重排序。用好原生,你的代碼將顯得干凈,有趣。 前言 最近工作做數(shù)據(jù)交互展示,常和數(shù)據(jù)打交道,而隨之而來的就是遇見后端傳來的各種各樣的數(shù)組,我需要用各式各樣的方法來變換這些數(shù)據(jù),來最好的展示這些數(shù)據(jù);很多東西久了沒用就容易忘...

    shenhualong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<