- 数组的sort() 方法可以把数组排序,不传参数的默认按字典排序
- sort() 方法还接受一个回调函数,按回调函数内代码逻辑排序
- 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
- 比较函数应该具有两个参数 a 和 b,
- 若 a < b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a = b,则返回 0。
- 若 a > b,则返回一个大于 0 的值。
- 不带任何参数情况
const a = ['a', 1, 9, 34, 'c']
a.sort()
console.log(a)
输出结果:
(5) [1, 34, 9, 'a', 'c']
2. 通过回调函数进行排序
- 根据自身的某个值进行排序
const a = [
{name: 'A', num: 9},
{name: 'B', num: 1},
{name: 'C', num: 3}
]
a.sort((start,next)=>{
return next.num - start.num // 按照num的值进行降序排序
})
console.log(a)
输出结果:
0:{name: 'A', num: 9} 1: {name: 'C', num: 3} 2: {name: 'B', num: 1}
- 根据自定义的顺序进行排序
const order = {
name: 0,
sex: 1,
class: 2,
number: 3,
};
const a = [
{key: 'name', value: 'Joshua'},
{key: 'number', value: 3},
{key: 'class', value: 'seventeen'},
{key: 'sex', value: 1}
]
a.sort((start,next) => {
return order[start.key] - order[next.key];
});
console.log(a)
输出结果:
0:{key: 'name', value: 'Joshua'} 1: {key: 'sex', value: 1} 2: {key: 'class', value: 'seventeen'} 3: {key: 'number', value: 3}