数组排序
数组排序的方法有:reverse()、sort()。
reverse()
reverse()方法会就地反转数组的元素顺序,并返回同一数组的引用。
ts
const arr = [1, 2, 3, 4, 5];
arr.reverse();
console.log(arr); // [ 5, 4, 3, 2, 1 ]如何在不改变原数组的情况下反转数组
使用
toReverse()方法,它不会改变原数组,而是返回一个新数组。(自 2023 年 7 月起适用于最新的设备和浏览器,可能不适用于较旧的设备)使用展开语法获取一个浅拷贝数组,然后使用
reverse()方法:[...arr].reverse()。
sort()
sort()方法会就地对数组的元素进行排序,并返回同一数组的引用。
默认排序是将元素转换为字符串,然后按照它们的 UTF-16 码元值升序排序。
ts
const months = ["March", "Jan", "Feb", "Dec"];
months.sort();
console.log(months); // [ 'Dec', 'Feb', 'Jan', 'March' ]sort()方法还可以接受一个比较函数作为参数,用于指定排序顺序。
比较函数的返回值是一个数字:
- 若
a < b,则返回负数 - 若
a = b,则返回 0(NaN 被视为 0) - 若
a > b,则返回正数
ts
const mixedNumericArray = ["80", "9", "700", 40, 1, 5, 200];
mixedNumericArray.sort((a, b) => Number(a) - Number(b));
console.log(mixedNumericArray); // [1, 5, '9', 40, '80', 200, '700']如何在不改变原数组的情况下对数组排序
使用
toSorted()方法,它不会改变原数组,而是返回一个新数组。(自 2023 年 7 月起适用于最新的设备和浏览器,可能不适用于较旧的设备)使用展开语法获取一个浅拷贝数组,然后使用
sort()方法:[...arr].sort()。