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

資訊專欄INFORMATION COLUMN

sort排序問題

zero / 2518人閱讀

摘要:是一個返回函數(shù),表示排序的依據(jù)它有倆個參數(shù),分別為需要比較的倆個數(shù)機器的排序是通過倆倆比較來進行排序的,基本用法與的比較結(jié)果會根據(jù)返回值正數(shù)負數(shù)來進行排序。如果反過來返回值為,那么和的順序就變了。

w3school上對sort()用法的定義為:arrayObject.sort(sortby);
顧名思義 :排序?qū)ο?排序(排序方法)
arrayObject直接 跳過了。
sort詳解也暫時先跳過,我略看了下源碼,對于arrayObject的排序并不是多帶帶使用的一種,個數(shù)少的時候用的插入排序,個數(shù)多的時候用的快速排序。
直接說 sortby的用法。

sortby 是一個 返回函數(shù) ,表示排序的依據(jù),
它有倆個參數(shù),分別為需要比較的倆個數(shù)(機器的排序是通過倆倆比較來進行排序的),
基本用法 :function(a,b){return a與b的比較結(jié)果}
sortby 會根據(jù)返回值 正數(shù)/0/負數(shù) 來進行排序。正數(shù)會順序顛倒,負數(shù)和0順序不動。

簡單的數(shù)字排序:
先講下淺層次的原理

比如說 [1,2].sort((a,b)=>a-b)
這個比較只有一次 1和2 比較,代入函數(shù),sortby返回值 為 -1 ,那么 1和2 順序不變。
如果反過來[1,2].sort((a,b)=>b-a)
sortby返回值為1 ,那么1和2 的順序就變了。
總結(jié)下也用法:
從小到大排序 array.sort((a,b)=>a-b);
從大到小排序:array.sort((a,b)=>b-a);

復雜點的Json排序。
這個有點類似于dataTable中的排序。
我平時創(chuàng)建一個數(shù)據(jù)表的時候,也都是通過json數(shù)組 遍歷創(chuàng)建的。
比如說:let data = [{name: "a",age:14},{name: "d",age:10},{name: "c",age:32},{name: "b",age:5}];

首先通過name來排序。

data.sort((a,b)=>a["name"].localeCompare(b["name"]));

localeCompare表示本地默認排序方式。
a["name"].localeCompare(b["name"])
表示按照本地排序的方式,以a.name與b.name的排序方式來排序data;

如果想反過來排序的話怎么辦的話:
上面說過,sortby的排序只根據(jù)正數(shù)/0/負數(shù),那么字母之間肯定也是有這樣的大小規(guī)律,倒序排序的話,只要把返回值變成其相反數(shù)即可。
b["name"].localeCompare(a["name"]);
或者
-(a["name"].localeCompare(b["name"]));

通過age排序
age排序和上面的數(shù)字排序是一樣的使用方法,從a-b變成了a[age]-b[age];

再復雜點的中文排序:

其實中文排序簡單粗暴地轉(zhuǎn)出拼音排序就可以了...
為什么說復雜呢,是因為要導入一個巨大的js,而且還需要轉(zhuǎn)行成拼音。
比如說:

let pinyin = {a:"u554au963fu9515",
ai:"u57c3u6328u54ceu5509u54c0u7691u764cu853cu77eeu827eu788du7231u9698u8bf6u6371u55f3u55ccu5ad2u7477u66a7u7839u953fu972d",
...}

獲取拼音的方法:

 function(word){
    for(let key in pinyin){
          if(pinyin[key].includes(word)){
            return key;
        }
    }}

然后就可以按照字母的排序方式來進行排序了。

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

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

相關(guān)文章

  • sort實現(xiàn)orderby

    摘要:工作到了這個年數(shù)感覺那些基本函數(shù)語法已經(jīng)跟人合一了根本不會為操作一些數(shù)據(jù)結(jié)構(gòu)而思考半天了在做小程序的時候遇到了個的場景結(jié)果發(fā)現(xiàn)沒有以為的那么簡單也許是之前不求甚解的原因那么現(xiàn)在來解決的問題問題的產(chǎn)生與探討方向在小程序中有個將的某一條置頂?shù)男? 工作到了這個年數(shù), 感覺那些基本函數(shù)語法已經(jīng)跟人合一了, 根本不會為操作一些數(shù)據(jù)結(jié)構(gòu)而思考半天了. 在做小程序的時候遇到了個orderby的場景,...

    jiekechoo 評論0 收藏0
  • 深入淺出 JavaScript 的 Array.prototype.sort 排序算法

    摘要:快速排序是不穩(wěn)定的排序算法。瀏覽器的實現(xiàn)不同有什么影響排序算法不穩(wěn)定有什么影響舉個例子某市的機動車牌照拍賣系統(tǒng),最終中標的規(guī)則為按價格進行倒排序相同價格則按照競標順位即價格提交時間進行正排序。 本文要解決的問題 1、找出 Array.prototype.sort 使用的什么排序算法 2、用一種直觀的方式展示 Array.prototype.sort 的時間復雜度,看看它有多快? 3、...

    itvincent 評論0 收藏0
  • php 二維數(shù)組排序

    摘要:前提給定一個二維數(shù)組,請根據(jù)指定的數(shù)組寫出最優(yōu)的排序。排序條件,指定數(shù)組如下估計大家都沒有什么問題,排序嘛,簡單的不要不要的方式一這應(yīng)該是最簡單的方式了,直接使用現(xiàn)成的函數(shù),快捷的不要不要的。 前提 給定一個二維數(shù)組,請根據(jù)指定的數(shù)組key,寫出最優(yōu)的排序。排序條件age asc,sex desc,指定數(shù)組如下: $arr = [ [id=>1, age=>1,...

    ashe 評論0 收藏0
  • CodeSalt | Python解決按學生年齡排序的實際問題

    摘要:解決按學生年齡排序的實際問題問題定義一個包含姓名性別年齡,需要按年齡給學生排序。輸出按照年齡進行排序好的。思路使用冒泡排序,比較相鄰的學生,如果第一個學生的值比第二個學生的值大,那么就整體交換這兩個元素。 Python解決按學生年齡排序的實際問題 問題:定義一個Class:包含姓名name、性別gender、年齡age,需要按年齡給學生排序。輸入:包含學生對象的List。輸出:按照年齡...

    yangrd 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<