js中的数组对象排序(方法sort()详细介绍)
?
?定義和用法
?
? ? sort() 方法用于對數組的元素進行排序。
?語法
? ?arrayObject.sort(sortby)
? 參數sortby:可選。規定排序順序。必須是函數。
? 返回值
? 對數組的引用。請注意,數組在原數組上進行排序,不生成副本。
?
普通數組排序:
? ?js中用方法sort()為數組排序。sort()方法有一個可選參數,是用來確定元素順序的函數。如果這個參數被省略,那么數組中的元素將按照ASCII字符順序進行排序。如:
字母A、B的ASCII值分別為65、66,而a、b的值分別為97、98,所以上面輸出的結果是 ["A", "B", "a", "b"]?
如果一個數組元素是數字,此時還是用sort()為數組排序,先看看效果如何:
怎么沒有起到效果(按大小排序),其實,sort方法會調用每個數組項的toString()方法,得到字符串,然后再對得到的字符串進行排序。雖然數值15比3大,但在進行字符串比較時"15"則排在"3"前面(ASCII字符順序)。顯然,這種結果不是我們想要的,這時,sort()方法的參數就起到了作用,我們把這個參數叫做比較函數。
比較函數接收兩個參數,如果第一個參數應該位于第二個之前則返回一個負數,如果兩個參數相等則返回0,如果第一個參數應該位于第二個之后則返回一個正數。
?數組對象排序:
? 數組項是對象,需要根據數組項的某個屬性對數組進行排序,要怎么辦呢?其實和前面的比較函數也差不多
下面這個是我項目的實例:
此時想PX字段大小排序,我是這樣做的:
sort()函數的應用,JS?中打亂數組
JS中,要打亂數組有很多方法,網上流傳一個國外人寫的方法,我認為是最精簡的了(下面是項目里應用的例子,登錄界面畫H5lock):
function randomsort(a, b) {
return Math.random()>.5 ? -1 : 1; ?//用Math.random()函數生成0~1之間的隨機數與0.5比較,返回-1或1
}
this.number_arr = [0,1,2,3,4,5,6,7,8,9];
this.number_random_arr = this.number_arr.sort(randomsort);
?? ? ???
?
?
?
? ? ?
轉載于:https://www.cnblogs.com/aixue/p/7064251.html
總結
以上是生活随笔為你收集整理的js中的数组对象排序(方法sort()详细介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js按位运算符及其妙用
- 下一篇: java performance too