...
大前端

JavaScript 数组排序 sort

记一下js的排序函数

数组排序

sort() 方法以字母顺序对数组进行顺序排序:

var fruits = [3, 2, 1, 4];
// 对 fruits 中的元素进行顺序排序
fruits.sort();
结果: [1, 2, 3, 4]

reverse() 方法反转数组中的元素。
您可以使用它以降序对数组进行排序:

var fruits = [3, 2, 1, 4];
// 对 fruits 中的元素进行排序
fruits.reverse();
结果: [4, 1, 2, 3]

比值函数
比较函数的目的是定义另一种排序顺序。
比较函数应该返回一个负,零或正值,这取决于参数:

function(a, b){return a-b}

当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。
实例:
当比较 40 和 100 时,sort() 方法会调用比较函数 function(40,100)。
该函数计算 40-100,然后返回 -60(负值)。
排序函数将把 40 排序为比 100 更低的值。
看,乱了:

var points = [40, 100, 1, 5, 25, 10];
points.sort();
结果: [1, 10, 100, 25, 40, 5]

运用比值函数就可以轻松解决,
比值函数有两个参数 a,b

var points = [40, 100, 1, 5, 25, 10];
points.sort((a,b)=>{
    return a-b; 
});
结果: [1, 5, 10, 25, 40, 100]

来说一下这个比值函数的原理:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

我们来看看 a,b 参数的输出

var points = [40, 100, 1, 5, 25, 10];
points.sort((a,b)=>{
    console.log(a,b)
    return a-b
});
100 40
1 100
1 40
5 40
5 1
25 40
25 5
10 25
10 5

可以清楚的看到,是一种穷举的排序方式。
现在说说二维数组怎么排序了

二维数组排序

var arr = [{id:3},{id:1},{id:2},{id:4}]
arr.sort((a,b)=>{
    return a.id - b.id
})
结果:
0: {id: 1}
1: {id: 2}
2: {id: 3}
3: {id: 4}

没错,二维数组也是用比较函数
要想倒叙排序那就把 ab 换一下,换成 b.id-a.id
就说到这儿,只为了巩固一下知识点。

js table表格导出到excel 导出一个工作簿多个sheet 浅析MySQL中concat以及group_concat的使用
biu biu biu
虚拟摄像头软件 ManyCam 去水印破解版教程 奉加微phy6222 安信可PB系列蓝牙添加OTA升级功能 移动端自适应不修改css源码使用js修改所有css单位px到rem 我25,她23...... sqlserver 创建事务 回滚事务 提交事务 Transaction