在 JavaScript 中,Array.prototype.sort()
方法用于对数组进行排序。默认情况下,sort()
方法将数组的元素按照 Unicode 编码进行升序排序。但是,你可以传递一个比较函数作为参数,以指定自定义的排序规则。
以下是使用 sort()
方法的基本语法:
arr.sort([比较函数]);
下面是一些示例,展示了如何使用 sort()
方法:
1. 默认(不传比较函数)根据Unicode 编码进行升序:
const numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
numbers.sort();
console.log(numbers); // 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
- 自定义比较函数进行降序排序:
// 接收一个比较函数.会把列表中 所有的 两两组合进行传入.
//--------如果你想要升序排序,返回 a - b
------
//--------如果你想要降序排序,返回 b - a
------
const numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
numbers.sort((a, b) => b - a); //降序
numbers.sort((a, b) =>{ return b - a} ); // 上面是简写
console.log(numbers); // 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
- 对字符串数组进行排序:
const words = ['apple', 'banana', 'cherry', 'date'];
words.sort((a, b) => a.length - b.length); // 是a-b,那么就是升序
console.log(words); // 输出 ["date", "apple", "cherry", "banana"]
需要注意的是,
sort()
方法会直接修改原数组,而不是返回一个新数组。
如果你想要不修改原数组的情况下排序,可以先创建一个数组的副本,然后对副本进行排序。