国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

原生JS之sort排序方法詳解

這篇具有很好參考價(jià)值的文章主要介紹了原生JS之sort排序方法詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在JavaScript中排序主要用到的api就是sort了,但是使用sort有幾個(gè)坑需要注意,讓我們一起來(lái)看看

排序原理-不使用參數(shù)時(shí)

sort() 方法用于對(duì)數(shù)組的元素進(jìn)行排序。排序順序可以是字母或數(shù)字,并按升序或降序。

默認(rèn)排序順序?yàn)榘醋值渖颉?/p>

在不使用參數(shù)時(shí),sort使用的是字典排序

如果數(shù)組中元素都是字符串,這點(diǎn)很好理解,比如:

var arr= new Array(); //創(chuàng)建一個(gè)空數(shù)組
arr= ['sun','xu','ma','he','wang','zhang'];
arr.sort(); //調(diào)用sort方法 

輸出結(jié)果為:

he
ma
sun
wang
xu
zhang 

但是如果是數(shù)字呢?讓我們來(lái)看看:

var a = new Array();
a = [1,10,100,5,25,99];
a.sort(); 

輸出結(jié)果為:

1
10
100
25
5
99 

令人費(fèi)解。。。但其實(shí)如果知道其原理就很容易理解,sort默認(rèn)是按照字典順序排序的;

字典序

字典序(dictionary order),又稱 字母序(alphabetical order),原意是表示英文單詞在字典中的先后順序,在計(jì)算機(jī)領(lǐng)域中擴(kuò)展成兩個(gè)任意字符串的大小關(guān)系。

英文中的 字母表(Alphabet) 按照如下的順序排列:

ABCDEFG HIJKLMN OPQRST UVWXYZ

abcdefg hijklmn opqrst uvwxyz

在字典中,單詞是按照首字母在字母表中的順序進(jìn)行排列的,比如 alpha 在 beta 之前。而第一個(gè)字母相同時(shí),會(huì)去比較兩個(gè)單詞的第二個(gè)字母在字母表中的順序,比如 account 在 advanced 之前,以此類推。下列單詞就是按照字典序進(jìn)行排列的:

as

aster

astrolabe

astronomy

at

ataman

attack

baa

在計(jì)算機(jī)領(lǐng)域中,這個(gè)字典序就不僅僅用來(lái)比較英文單詞了,而是比較任意字符串。對(duì)于兩個(gè)字符串,大小關(guān)系取決于兩個(gè)字符串從左到右第一個(gè)不同字符的 ASCII 值的大小關(guān)系。比如ah1x小于ahb,Z5小于a3,10小于101等

排序原理-使用參數(shù)

在大多數(shù)情況下,我們需要將數(shù)組中的數(shù)字按大小排序,就必須使用一個(gè)函數(shù)

使用數(shù)字排序,你必須通過一個(gè)函數(shù)作為參數(shù)來(lái)調(diào)用;函數(shù)指定數(shù)字是按照升序還是降序排列。

// 數(shù)組排序 sort

let arr=[1,8,2,6,9,12,64,86,3,5,4,9,4]
console.log('-------------------------這是升序--------------------');
console.log(arr.sort(sort_s));
console.log('-------------------------這是降序--------------------');
console.log(arr.sort(sort_j));

// 升序
function sort_s(a,b){return a-b;
}

// 降序
function sort_j(a,b){return b-a;
} 

輸出結(jié)果為:

原生JS之sort排序方法詳解

注意事項(xiàng)

這種方法會(huì)改變?cè)紨?shù)組! 這種方法會(huì)改變?cè)紨?shù)組!這種方法會(huì)改變?cè)紨?shù)組!重要的事情說(shuō)三遍,排完后會(huì)直接影響原數(shù)組,并且元素不會(huì)進(jìn)行復(fù)制,也就是說(shuō),sort()的返回值為原數(shù)組的引用,例如:

let arr=new Array()
arr=[2,4,1,8,5,3]
let arrt=arr.sort((a,b)=>a-b)
console.log(arr===arrt)//true 

最后

最近找到一個(gè)VUE的文檔,它將VUE的各個(gè)知識(shí)點(diǎn)進(jìn)行了總結(jié),整理成了《Vue 開發(fā)必須知道的36個(gè)技巧》。內(nèi)容比較詳實(shí),對(duì)各個(gè)知識(shí)點(diǎn)的講解也十分到位。
原生JS之sort排序方法詳解
原生JS之sort排序方法詳解
原生JS之sort排序方法詳解
原生JS之sort排序方法詳解

有需要的小伙伴,可以點(diǎn)擊下方卡片領(lǐng)取,無(wú)償分享文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-439080.html

到了這里,關(guān)于原生JS之sort排序方法詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ## 解析Arrays.sort()方法 排序問題

    首先,Arrays.sort() 需要傳入兩個(gè)參數(shù)。 第一個(gè)參數(shù)是需要排序的數(shù)組,但是該數(shù)組不能是基本數(shù)據(jù)類型,必須是引用數(shù)據(jù)類型。 第二個(gè)參數(shù)是一個(gè)接口,所以我們?cè)谡{(diào)用方式的時(shí)候,需要傳遞這個(gè)接口的實(shí)現(xiàn)類對(duì)象,這個(gè)實(shí)現(xiàn)類可以用匿名內(nèi)部類的方式實(shí)現(xiàn)。 底層原理分析

    2024年02月03日
    瀏覽(24)
  • [排序算法]:歸并排序(Merge Sort)(遞歸與非遞歸實(shí)現(xiàn)詳解)

    [排序算法]:歸并排序(Merge Sort)(遞歸與非遞歸實(shí)現(xiàn)詳解)

    ????????歸并排序,是創(chuàng)建在歸并操作上的一種有效的排序算法。算法是采用分治法(Divide and Conquer)的一個(gè)非常典型的應(yīng)用,且各層分治遞歸可以同時(shí)進(jìn)行。歸并排序思路簡(jiǎn)單,速度僅次于快速排序,為穩(wěn)定排序算法,一般用于對(duì)總體無(wú)序,但是各子項(xiàng)相對(duì)有序的數(shù)列。

    2024年01月20日
    瀏覽(37)
  • 【云原生技術(shù)】JavaScript在云計(jì)算中常用的一些框架,以及它們對(duì)應(yīng)的應(yīng)用類型和主要用途

    在云計(jì)算中,JavaScript語(yǔ)言主要用于前端Web開發(fā)和服務(wù)器端應(yīng)用程序開發(fā)。以下是JavaScript在云計(jì)算中常用的一些框架,以及它們對(duì)應(yīng)的應(yīng)用類型和主要用途,按照您提供的格式進(jìn)行詳細(xì)介紹: 1. 前端框架: 框架: React, Angular, Vue.js 應(yīng)用類型: 普通應(yīng)用:前端框架如React、An

    2024年01月21日
    瀏覽(49)
  • java中的Arrays.sort()排序方法

    目錄 一、方法重載 二、注意事項(xiàng) ?三、舉例 (1)對(duì)于基本數(shù)據(jù)類型的數(shù)組,排序時(shí)會(huì)按照升序排序; (2)對(duì)對(duì)象數(shù)組進(jìn)行排序 Java中的 Arrays.sort() 方法是一種內(nèi)置的排序方法,用于對(duì)數(shù)組進(jìn)行排序。這是一個(gè)來(lái)自 java.util.Arrays 類的靜態(tài)方法,用于對(duì)所有的基本數(shù)據(jù)類型對(duì)

    2024年02月08日
    瀏覽(34)
  • Leetcode 56. 合并區(qū)間(排序 + sort 方法的注意)

    Leetcode 56. 合并區(qū)間(排序 + sort 方法的注意) 題目 以數(shù)組 intervals 表示若干個(gè)區(qū)間的集合,其中單個(gè)區(qū)間為 intervals[i] = [starti, endi] 。 請(qǐng)你合并所有重疊的區(qū)間,并返回 一個(gè)不重疊的區(qū)間數(shù)組,該數(shù)組需恰好覆蓋輸入中的所有區(qū)間 。 1 = intervals.length = 10^4 intervals[i].length ==

    2024年02月10日
    瀏覽(27)
  • JAVA的sort用法詳解(二維數(shù)組排序,List<>排序,lambada表達(dá)式,自定義類型排序)

    JAVA的sort用法詳解(二維數(shù)組排序,List<>排序,lambada表達(dá)式,自定義類型排序)

    目錄 前言: 一維數(shù)組降序: 方法1.Comparator接口: 代碼實(shí)現(xiàn): 方法2.Collections.reverseOrder(): 代碼實(shí)現(xiàn):? 二維數(shù)組排序: 代碼如下: List排序: 代碼如下: 自定義類型比較排序: 按照年齡逆序排序: 按照姓名升序排序: lambada表達(dá)式簡(jiǎn)寫: 一維數(shù)組逆序代碼: 二維數(shù)組排

    2024年04月09日
    瀏覽(104)
  • 數(shù)組排序 sort() 方法 (映射對(duì)含有大小寫的字符串進(jìn)行排序)

    結(jié)論先行: sort() 方法: 用于對(duì)數(shù)組元素進(jìn)行 排序 ,默認(rèn)升序。如果指明了參數(shù),那數(shù)組會(huì)按照 比較函數(shù) 的返回值進(jìn)行排序。 ?? sort() 方法比較兩個(gè)值時(shí),將值發(fā)送給比較函數(shù),根據(jù)返回的(負(fù)、零、正)值對(duì)值進(jìn)行排序。 舉例,a 和 b 兩個(gè)將要被比較的元素: 如果 a-

    2024年04月25日
    瀏覽(93)
  • JDK8 中Arrays.sort() 排序方法解讀

    JDK8 中Arrays.sort() 排序方法解讀

    一、引言 在刷算法的時(shí)候經(jīng)常需要對(duì) 數(shù)組 進(jìn)行排序,第一反應(yīng)就是直接使用java.util包下的Arrays.sort()方法直接排序。但在刷算法時(shí)會(huì)通過 時(shí)間復(fù)雜度 和 空間復(fù)雜度 對(duì)實(shí)現(xiàn)的算法進(jìn)行評(píng)價(jià),因此我們需對(duì)Arrays.sort()方法有所了解。 本文先行介紹Arrays.sort()中影響排序方式的幾

    2024年02月02日
    瀏覽(33)
  • js sort方法指南

    本文將詳細(xì)介紹如何使用 sort 方法對(duì)數(shù)組中的原始數(shù)據(jù)和對(duì)象進(jìn)行排序: js 提供了一個(gè)排序方法 sort 可以對(duì)數(shù)組進(jìn)行就地排序(意味著不進(jìn)行復(fù)制)并返回排序后的數(shù)組。我們可以通過傳遞對(duì)比函數(shù)來(lái)修改內(nèi)部的數(shù)組元素的順序,但是不能修改 sort 方法所使用的算法。 使用

    2024年02月16日
    瀏覽(18)
  • 使用Java的stream().sorted方法對(duì)集合進(jìn)行排序

    Java Stream API 提供了豐富的方法來(lái)對(duì)流中的元素進(jìn)行處理和操作。其中, sorted() 方法用于對(duì)流中的元素進(jìn)行排序。本文將深入探討 sorted() 方法的用法、示例代碼以及詳細(xì)解釋,以幫助您更好地理解和使用這個(gè)方法。 StreamT sorted() : 這個(gè)方法用于對(duì)流中的元素進(jìn)行自然排序。要

    2024年02月04日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包