定义:sort() 方法用于对数组的元素进行排序。(会改变原数组)
使用方法:
1、必须写两个形参。
2、看返回值,当返回值为负数时,前面的数放在前面;当返回值为正数时,后面的数放在前面;为0则不动。
举例:
- 常规用法
let arr = [2,34,21,54,1,3,1];
arr.sort(function(a,b) {
if(a > b) {
return 1;
}else{
return -1;
}
})
console.log(arr) // [1, 1, 2, 3, 21, 34, 54]
- 常规用法简化
let arr = [2,34,21,54,1,3,1];
arr.sort(function(a,b) {
if(a > b) {
return a - b;
}else{
return a - b;
}
})
- 再次简化
let arr = [2,34,21,54,1,3,1];
arr.sort(function(a,b) {
return a - b;
})
结论:a-b升序;b-a降序
引申用法:
- 让一个有序数组乱序排列
let arr = [1,,2,3,4,5,6];
arr.sort(function(a,b) {
return Math.random() -0.5
})
- 对象中的age排序
let obj1 = {
name: 'vivi',
age: 13
}
let obj2 = {
name: 'kiki',
age: 27
}
let obj3 = {
name: 'lucy',
age: 12
}
let objArr = [obj1,obj2,obj3]
objArr.sort(function(a,b) {
if(a.age > b.age) {
return 1
}else{
return -1
}
})
简化后:
objArr.sort(function(a,b) {
return a.age - b.age
})
- 给数组中的字符串排序
let strArr = ['ad','sddess','adde','adw','defdcsaa'];
strArr.sort(function(a,b) {
return a.length - b.length
})