国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

數組Array的排序sort方法

2024-05-06 15:11:21
字體:
來源:轉載
供稿:網友

JavaScript中的Array對象有自己的排序方法sort(),對數組中的數據項進行排序,但是有時候排序結果不盡如人意,比如

var arr = [12, 1, 2, 21, 3];arr.sort();alert(arr);   得到的結果為 1,12,2,21,3

這是為什么呢?因為JavaScript中的排序默認按照ascii字符代碼進行排序,也就是說,數字也是按照它們的字符串形式排序的。

var strArr = ['a', '2', 'a2', '2a', 'b', '3'];alert(strArr.sort());

這個得到什么結果呢? 2,2a,3,a,a2,b


因為 數字的ascii碼比字母的小,所以數字排在前面,字母排在后面。

如果想繼續讓上面的數組arr按照數字進行排序,怎么處理呢?

JavaScript給我們提供了一個入口,可以給sort() 方法傳遞一個參數,即比較函數,來告訴排序算法值與值之間是大于、小于還是等于關系。

比較函數是有著特定算法的函數。

function compare_fn(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; }}

將比較函數 compare_fn 傳遞給sort,再進行排序,然后輸出

arr.sort(compare_fn);alert(arr);  得到 1, 2, 3, 12, 21

JavaScript中Array對象的sort方法返回值的定義為

負值 : 如果所傳遞的第一個參數比第二個參數小

零 : 兩個值相等

正值 : 如果第一個參數比第二個參數大


上面的比較函數還可以簡寫為

function compare_fn(value1, value2) { return value1 - value2;}

這個比較的為升序排列


如果想降序排列,直接改變上面的返回值的符號就可以了,給所有返回均取反。

對簡寫的比較函數就是

function compare_fn(value1, value2) { return -(value1 - value2);}   

function compare_fn(value1, value2) { return value2 - value1;}

簡單的記法就是:順序升;逆序降。

以上這篇數組Array的排序sort方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 连南| 河间市| 湘乡市| 古田县| 绩溪县| 武山县| 林周县| 庆元县| 陆河县| 昭苏县| 民丰县| 大庆市| 南汇区| 台山市| 上栗县| 临湘市| 万全县| 金华市| 柘荣县| 崇阳县| 宜兴市| 新蔡县| 泗水县| 焉耆| 民乐县| 贺州市| 历史| 卢龙县| 沭阳县| 平度市| 曲阜市| 阳信县| 九江县| 靖州| 彝良县| 鲁山县| 内江市| 神木县| 富蕴县| 阳城县| 白山市|