摘要:來,今天我來教大家一個騷操作。我利用的就是數組的索引來排序的,大家都知道,索引就是從開始,然后依次遞增的。技術總結這個就是巧用了數組的索引,默認就是一個從小到大的排序的特性。
如果你想要對數組排序,可能會去百度去搜,于是有很多人教你用冒泡,什么二分插入排序、堆排序,如果不太懂其中的代碼意思,很難看明白。來,今天我來教大家一個騷操作。
我利用的就是JS數組的索引來排序的,大家都知道,索引就是從0開始,然后依次遞增的。好了,廢話少說,開始擼了。
我們來上完整的代碼:
var arr = [1,4,2,5,21,3,44,12];//要排序的數組。 var res = [];//要返回的排序后的數組。 var arr1 = [];//中間用到的過渡數組 arr.forEach(a=>{ arr1[a] = 1; }); arr1.forEach((r,index)=>{ if(r === 1){ res.push(index);//通過push默認是是升序,如果想降序可以采用unshift方法,或者在最后將數組反轉一下即可。 } }) console.log(res);
arr.forEach(a=>{
//這一步很關鍵,我們把要排序的數組的每一項當作了中間過渡數組的索引,并賦值為1(這里不一定要是1,給一個特定的值就行)
arr1[a] = 1;
});
這時候arr1 的結果為: [empty, 1, 1, 1, 1, empty × 7, 1, empty × 8, 1, empty × 22, 1, empty × 10, 1]
這時候中間過渡數組arr1就有數據了,但是這個數組中有很多undefined,這時候我們再做最后的排除就好了。
寫在最后:有人可能會提出來,如果數組中有重復項,那這種排序是不是不行了,當然可以, 做下處理,把重復的先拿到,重復了幾次,然后在最后的結果數組中通過splice(index,0,item);對數組進行插入操作即可。
技術總結:
這個就是巧用了數組的索引,默認就是一個從小到大的排序的特性。這種方法簡單易懂。
數組的基本方法的使用,像forEach push unshift reverse splice(這個splice可以做刪除,插入,修改) 等。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104177.html
摘要:序列文章面試之函數面試之對象前言本文主要從應用來講數組的一些騷操作如一行代碼扁平化維數組數組去重求數組最大值數組求和排序對象和數組的轉化等上面這些應用場景你可以用一行代碼實現扁平化維數組終極篇是扁平數組的表示維度值為時維度為無限大開始篇實質 showImg(https://segmentfault.com/img/bVbpRMS?w=1858&h=1286); 序列文章 JS面試之函數...
摘要:讓我們快速的復習一下在中一共有兩種類型的值原始值和對象值原始值有布爾值數字還有字符串其他的所有值都是對象類型的值包括數組和函數類型轉化先按運算符來分一下類減號,乘號,肯定是進行數學運算,所以操作數需轉化為類型。 前言 很多小伙伴們覺得javaScript很簡單,下面的這行 javaScript代碼可能會讓你懷疑人生。 (!(~+[])+{})[--[~+][+[]]*[~+[]] +...
摘要:快速排序是一種劃分交換排序。快速排序基于冒泡遞歸分治。他在大數據情況下是最快的排序算法之一,平均事件復雜度很低而且前面的系數很小,在大量隨機輸入的情況下最壞情況出現的概率是極小的。 快速排序是一種劃分交換排序。它采用了一種分治的策略,通常稱其為分治法。 分治法的基本思想是:將原問題分解為若干個規模更小但結構與原問題相似的子問題。遞歸地解這些子問題,然后將這些子問題的解組合為原問題的解。...
摘要:插入排序是穩定的算法。所以準確的說,當數組長度大于的時候,采用了快速排序和插入排序的混合排序方法。在對數組進行了一次快速排序后,然后對兩個子集分別進行了插入排序,最終修改數組為正確排序后的數組。 JavaScript 專題系列第二十篇,也是最后一篇,解讀 v8 排序源碼 前言 v8 是 Chrome 的 JavaScript 引擎,其中關于數組的排序完全采用了 JavaScript 實...
摘要:函數的因為也擁有屬性,所以其被稱為類數組對象。方法數組的拼接,,指被拼接的對象數組,為數組。如果為負,則將其視為,其中為數組的長度。而提供了數組反轉和排序來對數組進行重排序。用好原生,你的代碼將顯得干凈,有趣。 前言 最近工作做數據交互展示,常和數據打交道,而隨之而來的就是遇見后端傳來的各種各樣的數組,我需要用各式各樣的方法來變換這些數據,來最好的展示這些數據;很多東西久了沒用就容易忘...
閱讀 2792·2021-09-01 10:30
閱讀 1686·2019-08-30 15:52
閱讀 973·2019-08-29 18:40
閱讀 1129·2019-08-28 18:30
閱讀 2399·2019-08-23 17:19
閱讀 1330·2019-08-23 16:25
閱讀 2703·2019-08-23 16:18
閱讀 2983·2019-08-23 13:53