sort() 方法对数组的元素做原地的排序,并返回这个数组。默认按照字符串的Unicode码位点(code point)排序。

语法

arr.sort([compareFunction])

参数

compareFunction
可选。用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的诸个字符的Unicode位点进行排序。

详解

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); // ['apples', 'bananas', 'cherries'] var scores = [1, 10, 2, 21];
scores.sort(); // [1, 10, 2, 21]
// Watch out that 10 comes before 2,
// because '10' comes before '2' in Unicode code point order. var things = ['word', 'Word', '1 Word', '2 Words'];
things.sort(); // ['1 Word', '2 Words', 'Word', 'word']
// In Unicode, numbers come before upper case letters,
// which come before lower case letters.

  

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。

比较器函数如下:

function compare(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}

希望比较数字而非字符串,比较函数可以简单的以 a 减 b,如下的函数将会将数组升序排列:

function compareNumbers(a, b) {
return a - b;
}

以上为常见的sort()方法的使用,如不能满足您的需求,

请访问:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort  

  

 

最新文章

  1. 深度分析mysql GROUP BY 与 ORDER BY
  2. Django 基本命令
  3. [BZOJ1999][codevs1167][Noip2007]Core树网的核
  4. JS_ECMA基本语法中的几种封装的小函数
  5. Visual Studio 2012 常用快捷键
  6. 使用RazorEngine对ASP.NET MVC的Views进行UnitTest
  7. Java Set接口
  8. UVa 1629 Cake slicing (记忆化搜索)
  9. 3.Thread中的静态方法
  10. webpack2进阶之多文件,DLL,以及webpack-merge
  11. PPS--在download DN出现的问题注意:
  12. 【转】Git 代码行统计命令集
  13. Codeforces 603A - Alternative Thinking - [字符串找规律]
  14. spring boot(十二)打包部署
  15. Leetcode 116
  16. spring cloud(服务注册中心及服务提供者——初学一)
  17. 【刷题】BZOJ 4916 神犇和蒟蒻
  18. 基于pandas python sklearn 的美团某商家的评论分类(文本分类)
  19. Scrum Meeting 2 -2014.11.2
  20. [Java] 集合框架原理之一:基本结构与源码分析

热门文章

  1. LAMP 搭建wordpress部署教程贴.
  2. php文件格式数组
  3. boost dijkstra获得两点间的最短路
  4. Kafka笔记--参数说明及Demo
  5. Java添加自定义注解
  6. Python 坑爹之 代码缩进
  7. linux 命令后台执行
  8. Linux企业级项目实践之网络爬虫(16)——使用base64传输二进制数据
  9. POJ3580---SuperMemo (Splay)
  10. Linux中部署JAVA程序