javascript数组排序的方法

简介: javascript数组排序的方法

在JavaScript中,数组排序通常使用Array.prototype.sort()方法。这个方法会按照指定的顺序对数组的元素进行排序,并返回排序后的数组。如果未指定比较函数,那么元素会被转换为字符串,并按照字符的Unicode码点顺序进行排序。

下面是一些使用sort()方法的示例:

基本用法

let array = [5, 2, 9, 1, 5, 6];
array.sort();
console.log(array); // 输出可能是 [1, 2, 5, 5, 6, 9],注意sort()方法不保证排序的稳定性

由于sort()默认将数组元素转换为字符串进行排序,因此上面的代码可能不会按照预期的数字大小顺序进行排序。为了得到正确的数字排序,你需要提供一个比较函数。

按照数字大小排序

let array = [5, 2, 9, 1, 5, 6];
array.sort((a, b) => a - b);
console.log(array); // 输出 [1, 2, 5, 5, 6, 9]

在上面的例子中,我们传递了一个比较函数给sort(),该函数接收两个参数ab,并返回它们的差。如果a小于b,则返回一个负数,如果a等于b,则返回0,如果a大于b,则返回一个正数。这样,sort()就会按照数字大小进行排序。

按照降序排序

let array = [5, 2, 9, 1, 5, 6];
array.sort((a, b) => b - a);
console.log(array); // 输出 [9, 6, 5, 5, 2, 1]

如果你想要按照降序排序,只需将比较函数中的ab交换位置即可。

按照字符串长度排序

et array = ['apple', 'banana', 'cherry', 'date'];
array.sort((a, b) => a.length - b.length);


console.log(array); // 输出 ['date', 'apple', 'cherry', 'banana']

在这个例子中,我们按照字符串的长度进行排序。

按照对象属性排序

let array = [
{ name: 'John', age: 23 },
{ name: 'Jane', age: 30 },
{ name: 'Doe', age: 20 }
];
array.sort((a, b) => a.age - b.age);
console.log(array);
// 输出:
// [
// { name: 'Doe', age: 20 },
// { name: 'John', age: 23 },
// { name: 'Jane', age: 30 }
// ]

在这个例子中,我们按照对象的age属性进行排序。

sort()方法还可以接受一个可选的比较函数参数,用于自定义排序规则。如果你不传递任何参数给sort(),那么元素会按照字符的Unicode码点顺序进行排序。

请注意,sort()方法会直接修改原数组,并返回排序后的数组。如果你不想修改原数组,可以先复制一份数组再进行排序。


相关文章
|
5天前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
17 2
|
5天前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
22 1
|
5天前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
18 1
|
7天前
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
10 1
|
3天前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
19 0
|
3天前
|
JavaScript 前端开发
js关于时间的方法
js关于时间的方法
9 0
|
5天前
|
JavaScript 前端开发 安全
JavaScript实现跳转的方法
JavaScript实现跳转的方法
12 0
|
6天前
|
JavaScript 索引
js数组去重的常见方法
js数组去重的常见方法
19 0
|
8天前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
|
18天前
|
JavaScript 前端开发
JavaScript遍历数组用splice方法删除元素,这样写可能有遗漏,你遇到过吗?
JavaScript遍历数组用splice方法删除元素,这样写可能有遗漏,你遇到过吗?