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