js中sort方法的使用

/**
@param {function} [compareFn]
@return {Array.<T>}
*/
Array.prototype.sort = function(compareFn) {}
/**
      * Sorts an array.
      * @param compareFn The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, ASCII character order.
      */
    sort(compareFn?: (a: T, b: T) => number): T[];

可以看到該函數(shù)的參數(shù)是一個(gè)函數(shù)如果不傳入?yún)?shù)或者參數(shù)不是一個(gè)函數(shù)那么該函數(shù)最多可以升序排列10個(gè)以內(nèi)的數(shù)

  var arr = [2, 412, 3213, 22, 122,222,222,2277,22898,22423432,2,9];
    arr.sort();

傳入的是兩個(gè)參數(shù)返回值是number類型的函數(shù)

 arr.sort(function (a, b) {
        return a - b;
    });

如果 return a- b就是求升序:因?yàn)?如果a-b大于0那么交換a和b的位置因此為升序
如果return b-a那就是降序:因?yàn)槿绻鸼-a大于0那么交換a和b的位置因此是降序
如果返回值是例如 return 1那么僅僅只是將數(shù)組進(jìn)行了逆序排列相當(dāng)于 reverse
如果返回值是如果 return <=0的數(shù)那么保持不變

函數(shù)內(nèi)部會(huì)多次進(jìn)行比較可能使用了冒泡插入等排序規(guī)則

二維數(shù)組的比較

    var arr = [
        {name:'小二',age:18},
        {name:'小222',age:13},
        {name:'小33',age:23},
    ];

    arr.sort(function (a,b) {
       // 以年齡排序
        return parseFloat(a.age) - parseFloat(b.age);
    });
    console.log(arr);

// 比較漢字字符串排序用localcompare函數(shù)

  var arr = [
        {name: '小二', age: 18},
        {name: '小222', age: 13},
        {name: '小33', age: 23},
    ];
        arr.sort(function (a, b) {
        return a.name.localeCompare(b.name);
    });
    console.log(arr);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,679評(píng)論 0 4
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • Javascript有很多數(shù)組的方法,有的人有W3C的API,還可以去MDN上去找,但是我覺(jué)得API上說(shuō)的不全,M...
    頑皮的雪狐七七閱讀 4,494評(píng)論 0 6
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,922評(píng)論 0 33
  • 貪婪(盡可能多) 例題取出 aabab中從a開(kāi)始到最后一個(gè)b之間的所有字符 可見(jiàn)貪婪的格式為 a.*b 懶惰(盡可能少)
    螞蟻牙齒不黑閱讀 283評(píng)論 0 0

友情鏈接更多精彩內(nèi)容