亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Javascript 數組排序詳解

2019-11-20 14:00:19
字體:
來源:轉載
供稿:網友

如果你接觸javascript有一段時間了,你肯定知道數組排序函數sort,sort是array原型中的一個方法,即array.prototype.sort(),sort(compareFunction),其中compareFunction是一個比較函數,下面我們看看來自Mozilla MDN 的一段描述:
If compareFunction is not supplied, elements are sorted by converting them to strings and comparing strings in lexicographic (“dictionary” or “telephone book,” not numerical) order. For example, “80″ comes before “9″ in lexicographic order, but in a numeric sort 9 comes before 80.

下面看些簡單的例子:

復制代碼 代碼如下:

// Output [1, 2, 3]
console.log([3, 2, 1].sort());

// Output ["a", "b", "c"]
console.log(["c", "b", "a"].sort());

// Output [1, 2, "a", "b"]
console.log(["b", 2, "a", 1].sort());


從上例可以看出,默認是按字典中字母的順序來排序的。

幸運的是,sort接受一個自定義的比較函數,如下例:

復制代碼 代碼如下:

function compareFunction(a, b) {
 if( a > b) {
  return -1;
 }else if(a < b) {
  return 1;
 }else {
  return 0;
 }
}
//Outputs ["zuojj", "Benjamin", "1"]
console.log(["Benjamin", "1", "zuojj"].sort(compareFunction));

排序完我們又有個疑問,如何控制升序和降序呢?

復制代碼 代碼如下:

function compareFunction(flag) {
 flag = flag ? flag : "asc";
 return function(a, b) {
  if( a > b) {
   return flag === "desc" ? -1 : 1;
  }else if(a < b) {
   return flag === "desc" ? 1 : -1;
  }else {
   return 0;
  }
 };
}
//Outputs ["1", "Benjamin", "zuojj"]
console.log(["Benjamin", "1", "zuojj"].sort(compareFunction()));
//Outputs ["zuojj", "Benjamin", "1"]
console.log(["Benjamin", "1", "zuojj"].sort(compareFunction("desc")));

comparFunction的排序規則是這樣的:
1.If it returns a negative number, a will be sorted to a lower index in the array.
2.If it returns a positive number, a will be sorted to a higher index.
3.And if it returns 0 no sorting is necessary.

下面我們來看看摘自Mozilla MDN上的一段話:
The behavior of the sort method changed between JavaScript 1.1 and JavaScript 1.2.為了解釋這段描述,我們來看個例子:

In JavaScript 1.1, on some platforms, the sort method does not work. This method works on all platforms for JavaScript 1.2.

In JavaScript 1.2, this method no longer converts undefined elements to null; instead it sorts them to the high end of the array.詳情請戳這里。

復制代碼 代碼如下:

var arr = [];
arr[0] = "Ant";
arr[5] = "Zebra";
//Outputs ["Ant", 5: "Zebra"]
console.log(arr);
//Outputs 6
console.log(arr.length);
//Outputs "Ant*****Zebra"
console.log(arr.join("*"));
//排序
var sortArr = arr.sort();
//Outputs ["Ant", "Zebra"]
console.log(sortArr);
//Outputs 6
console.log(sortArr.length);
//Outputs "Ant*Zebra****"
console.log(sortArr.join("*"));

希望本文對你學習和了解sort()方法有幫助,文中不妥之處還望批評斧正。

參考鏈接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩欧美另类| 日韩成人激情影院| 久久精品人人做人人爽| 日本精品一区二区三区在线播放视频| 欧美裸体xxxx| 久久99国产综合精品女同| 亚洲韩国青草视频| 亚洲人成自拍网站| 亚洲成人网在线| 亚洲欧美国产日韩天堂区| 成人亲热视频网站| 亚洲mm色国产网站| 欧美午夜视频在线观看| 国产精品视频男人的天堂| 日韩欧美亚洲成人| www.日韩av.com| yw.139尤物在线精品视频| 精品久久久久久久中文字幕| 热99精品只有里视频精品| 欧美大全免费观看电视剧大泉洋| 欧美国产在线视频| 欧美精品精品精品精品免费| 精品亚洲一区二区三区在线观看| 欧美激情精品久久久久久变态| 日韩美女在线观看一区| 亚洲欧美在线一区| 国产精品久久久久久久app| 亚洲欧美综合精品久久成人| 亚洲影院污污.| 亚洲成人av在线| 97国产一区二区精品久久呦| 欧美大码xxxx| 日本国产一区二区三区| 久久99精品久久久久久琪琪| 亚洲国产精品久久久| 这里精品视频免费| 欧美国产日韩一区二区在线观看| 国产精品高清网站| 北条麻妃在线一区二区| 亚洲午夜精品视频| 亚洲专区中文字幕| 久久久久久久久久久久av| 欧美国产日韩精品| 色中色综合影院手机版在线观看| 精品丝袜一区二区三区| 国产精品视频网址| 欧美性xxxx极品hd欧美风情| 欧美极品美女电影一区| 精品欧美一区二区三区| 国产精品日本精品| 亚洲精品久久久一区二区三区| 久久影视三级福利片| 成人激情视频免费在线| 91国在线精品国内播放| 国产精品久久77777| 久久久精品日本| 亚洲激情国产精品| 国产亚洲精品一区二555| 亚洲福利视频久久| 日本91av在线播放| 久久久99免费视频| 欧美日韩国产一区二区三区| 亚洲综合一区二区不卡| 日韩中文字幕不卡视频| 97在线视频一区| 日韩免费观看高清| 久久激情视频久久| 亚洲美女在线观看| 91po在线观看91精品国产性色| 97在线观看视频国产| 激情久久av一区av二区av三区| 午夜精品蜜臀一区二区三区免费| 北条麻妃一区二区在线观看| 日韩一区二区欧美| 777午夜精品福利在线观看| 国产精品福利观看| 久久全球大尺度高清视频| 午夜免费在线观看精品视频| 亚洲免费av电影| 亚洲综合精品伊人久久| 欧美高清视频一区二区| 亚洲欧美www| 欧美做受高潮电影o| 成人精品久久av网站| 最近2019年中文视频免费在线观看| 日韩美女av在线免费观看| 欧美黑人巨大xxx极品| 91精品久久久久久久久中文字幕| 日韩精品高清在线观看| 欧美大成色www永久网站婷| 久久久久国产视频| 97超级碰在线看视频免费在线看| 欧美寡妇偷汉性猛交| 亚洲成av人乱码色午夜| 欧美视频在线免费看| 国产成人精品免费久久久久| 国产精品欧美激情| 国产视频综合在线| 91在线视频九色| 亚洲毛片在线免费观看| 亚洲国产精品99久久| 国产精品成人一区二区| 97在线视频免费| 亚洲www视频| 欧美孕妇与黑人孕交| 欧美在线视频一区| 91久久久久久久| 日韩免费中文字幕| 国产精品中文字幕久久久| 久久久久久久久久久国产| 国产精品高精视频免费| 中文字幕日韩在线视频| 2021久久精品国产99国产精品| 亚洲va久久久噜噜噜久久天堂| 国产欧亚日韩视频| 成人国产亚洲精品a区天堂华泰| 国产精品美女无圣光视频| 26uuu另类亚洲欧美日本一| 国产精品视频公开费视频| 一级做a爰片久久毛片美女图片| 久久久噜噜噜久久久| 九九热这里只有精品6| 欧美亚洲另类制服自拍| 国产精品视频地址| 国产精品9999| 日韩电影免费在线观看| 欧美电影在线观看高清| 青青久久av北条麻妃黑人| 亚洲天堂免费在线| 日韩在线中文字幕| 精品香蕉在线观看视频一| 亚洲热线99精品视频| 精品一区二区三区四区| 成人在线激情视频| 在线视频欧美日韩| 国产精品主播视频| 欧美精品videos另类日本| 国产精品av网站| www.国产精品一二区| 91国产精品视频在线| 欧美日韩国产精品一区二区不卡中文| 日韩视频亚洲视频| 国内精品久久影院| 国产日韩欧美电影在线观看| 亚洲片在线观看| 亚洲精品久久久久国产| 亚洲精品福利免费在线观看| 欧美大片大片在线播放| 国产精品久久一区主播| 欧美性感美女h网站在线观看免费| 久久综合久久美利坚合众国| 国语自产偷拍精品视频偷| 亚洲精品丝袜日韩| 69视频在线播放| 日韩电影中文字幕一区| 中文字幕欧美日韩精品| 热99在线视频| 亚洲91精品在线观看| 97超级碰碰碰| 欧美电影电视剧在线观看| 中文字幕精品网| 97视频网站入口| 国产精品久在线观看| 一区二区三区亚洲|