arraySort

arraySort

> 函数列表

按函数 callback 定义的顺序对数组 array 排序。

元素两两比较:根据第一个值排在第二个值之前、与之并列还是之后,callback 函数必须分别返回负数、0 或正数。

默认顺序为:

示例:

参数
返回值
TypeScript

在 JavaScript 中,不带比较函数的 sort() 会把元素当作字符串来排序:[10, 9, 1] 得到的是 [1, 10, 9],而不是 arraySort 的数值顺序。对数字排序时,一定要传入比较函数:[...a].sort((x, y) => x - y),降序则用 (x, y) => y - x。sort 是原地排序,所以要先用 [...a] 复制一份,才能像 arraySort 那样得到一个新数组;a.toSorted((x, y) => x - y) 则一步就能完成这两件事。

Python

在 Python 中,sorted(a) 返回一个新的已排序列表,和 arraySort 一样。但它没有接受两个参数的比较函数:排序按键进行,如 sorted(a, key=len) 或 sorted(a, key=lambda e: e.life),加上 reverse=True 即可反转顺序。如果想复用一个返回负数、零或正数的比较函数,就把它包装一下:sorted(a, key=functools.cmp_to_key(comparateur))。排序时元素之间会相互比较:混有数字和字符串的列表会抛出 TypeError。

注意