sort()對數組進行排序


一、數組的默認排序

 var arr = [8,7,6,1,2,4,3,9,5] console.log(arr.sort())

輸出結果:[1, 2, 3, 4, 5, 6, 7, 8, 9],默認是升序排列,從小到大

二、sort()比較函數實現降序,從大到小排列

    var arr = [8,7,6,1,2,4,3,9,5] console.log(arr.sort(function(a,b){ return b- a }))

輸出結果:[9, 8, 7, 6, 5, 4, 3, 2, 1]

知識點:

1.參數a和b,就是依次從數組中取連續的兩個元素,如從示例中先選擇前兩個元素 8,7。
所以,在匿名函數內 b - a 的結果是 -1。

再看下,匿名函數的結果跟排序的關系:
如果小於 0 ,那么 a 會被排列到 b 之前;
如果等於 0 , a 和 b 的相對位置不變。備注:ECMAScript 標准並不保證這一行為,而且也不是所有瀏覽器都會遵守(例如 Mozilla 在 2003 年之前的版本);
如果大於 0 , b 會被排列到 a 之前。
必須總是對相同的輸入返回相同的比較結果,否則排序的結果將是不確定的。

三、中文實現排序

    var array = ['最', '啊', '傳', '不']; var resultArray = array.sort( function (param1, param2) { return param1.localeCompare(param2,"zh") } ) console.log(resultArray) var resultArray2 = array.sort( function (param1, param2) { return param2.localeCompare(param1,"zh") } ) console.log(resultArray2)

輸出結果:

1.["啊", "不", "傳", "最"]

2.["最", "傳", "不", "啊"]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM