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()方法会直接修改原数组,并返回排序后的数组。如果你不想修改原数组,可以先复制一份数组再进行排序。


相关文章
|
1天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
5 0
|
1天前
|
前端开发 JavaScript
前端 JS 经典:Math 常用方法汇总
前端 JS 经典:Math 常用方法汇总
5 0
|
1天前
|
前端开发 JavaScript
前端 js 经典:Object 常用原生方法
前端 js 经典:Object 常用原生方法
8 2
|
1天前
|
前端开发 JavaScript
前端 js 经典:array 原生方法
前端 js 经典:array 原生方法
6 1
|
2天前
|
JavaScript 前端开发
JS中正则方法的使用 - 蓝易云
以上就是JavaScript中正则方法的基本使用。这些方法可以用于执行复杂的字符串处理和验证任务。
13 1
|
2天前
|
JavaScript 前端开发
JavaScript的`apply`方法:函数的“应用”与“调用”
JavaScript的`apply`方法:函数的“应用”与“调用”
|
2天前
|
JavaScript 前端开发
JavaScript的`bind`方法:函数的“复制”与“定制”
JavaScript的`bind`方法:函数的“复制”与“定制”
|
2天前
|
JavaScript 前端开发
JavaScript的`call`方法:实现函数间的调用!
JavaScript的`call`方法:实现函数间的调用!
|
2天前
|
设计模式 JavaScript 前端开发
JavaScript原型模式:实现对象共享属性和方法!
JavaScript原型模式:实现对象共享属性和方法!
|
3天前
|
JavaScript 前端开发 索引
JavaScript array 原生 reduce 方法的模拟实现
JavaScript array 原生 reduce 方法的模拟实现
8 2