一般我們使用sort函式進行陣列的排序,sort()方法有乙個可選引數,是用來確定元素順序的函式。如果這個引數被省略,那麼陣列中的元素將按照ascii字元順序進行排序。如:
var arr = ["a", "b", "a", "b"];arr.sort();
console.log(arr);//["a", "b", "a", "b"]
如果陣列元素是數字呢,結果會是怎樣?
var arr = [15, 8, 25, 3];arr.sort();
console.log(arr);//[15, 25, 3, 8]
結果是 [15, 25, 3, 8] 。其實,sort方法會呼叫每個陣列項的tostring()方法,得到字串,然後再對得到的字串進行排序。雖然數值15比3大,但在進行字串比較時"15"則排在"3"前面。顯然,這種結果不是我們想要的,這時,sort()方法的引數就起到了作用,我們把這個引數叫做比較函式。比較函式接收兩個引數,如果第乙個引數應該位於第二個之前則返回乙個負數,如果兩個引數相等則返回0,如果第乙個引數應該位於第二個之後則返回乙個正數。例子:
var arr = [23, 9, 4, 78, 3];arr.sort(function(a,b));
console.log(arr); // [78,23,9,4,3]
a,b表示陣列中的任意兩個元素,若return > 0 b前a後;reutrn < 0 a前b後;a=b時存在瀏覽器相容。a-b輸出從小到大排序,b-a輸出從大到小排序。
js 陣列排序函式sort
arrayobj.sort sortfunction 引數 sortfunction 可選項。是用來確定元素順序的函式的名稱。如果這個引數被省略,那麼元素將按照 ascii 字元順序進行公升序排列。sort 方法將 array 物件進行適當的排序 在執行過程中並不會建立新的 array 物件。如果為...
Js陣列排序函式sort
js實現多維陣列和物件陣列排序,用的其實就是原生sort 函式,語法為 arrayobject.sort sortby sortby 可選。規定排序順序。必須是函式。返回值為對陣列的引用 請注意,陣列在原陣列上進行排序,不生成副本。如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說...
Js 陣列排序函式sort
最近看到乙個js函式sort 覺得挺有意思,寫在這裡與大家分享。如果有什麼地方不對或者有更好的寫法,也請大家不吝賜教。sort 返回乙個元素已經進行了排序的 array 物件。1.按字母排序 直接使用sort 函式,預設按字母順序排。var arr new array dd aa bb cc arr...