-
let arr = ["c", "a", "b"];
-
升序排序
let arr = ["c", "a", "b"];
arr.sort();
console.log(arr); // ["a", "b", "c"]
-
降序排序
let arr = ["c", "a", "b"];
/*
如果 sort(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
如果 sort(a, b) 等于 0 , a 和 b 的相对位置不变。
如果 sort(a, b) 大于 0 , b 会被排列到 a 之前。
注意点: 如果元素是字符串类型, 那么比较的是Unicode编码
*/
arr.sort(function (a, b) {
if (a > b){
return -1;
}else if (a < b) {
return 1;
}else {
return 0;
}
});
console.log(arr); // ["c", "b", "a"]
-
let arr = [3, 4, 2, 5, 1];
-
升序排序
let arr = [3, 4, 2, 5, 1];
// 方式一
arr.sort();
// 方式二
arr.sort(function (a, b) {
// 规律: 如果数组中的元素是数值类型
// 如果需要升序排序, 那么就返回a - b;
return a - b;
});
console.log(arr); // [1, 2, 3, 4, 5]
-
降序排序
let arr = [3, 4, 2, 5, 1];
// 方式一
arr.sort(function (a, b) {
if (a > b){
return -1;
} else if (a < b){
return 1;
} else {
return 0;
}
});
// 方式二
arr.sort(function (a, b) {
// 规律: 如果数组中的元素是数值类型
// 如果需要降序排序, 那么就返回b - a;
return b - a;
});
console.log(arr); // [5, 4, 3, 2, 1]
-
let arr = ["1234", "21", "54321", " 123", "6"];
-
升序排序
let arr = ["1234", "21", "54321", " 123", "6"];
arr.sort(function (str1, str2) {
// 字符串是特殊的数组, 所以字符串也有length属性, 通过length属性也可以获取到这个字符串中有多少个元素多少个字符
return str1.length -str2.length;
});
console.log(arr); // ["6", "21", "1234", " 123", "54321"]
-
降序排序
let arr = ["1234", "21", "54321", " 123", "6"];
arr.sort(function (str1, str2) {
// 字符串是特殊的数组, 所以字符串也有length属性, 通过length属性也可以获取到这个字符串中有多少个元素多少个字符
return str2.length -str1.length;
});
console.log(arr); // ["54321", "1234", " 123", "21", "6"]
let students = [
{name: "zs", age: 34},
{name: "ls", age: 18},
{name: "ww", age: 22},
{name: "mm", age: 28},
];
-
升序排序
let students = [
{name: "zs", age: 34},
{name: "ls", age: 18},
{name: "ww", age: 22},
{name: "mm", age: 28},
];
students.sort(function (o1, o2) {
return o1.age - o2.age;
});
console.log(students);
/*
0: {name: "ls", age: 18}
1: {name: "ww", age: 22}
2: {name: "mm", age: 28}
3: {name: "zs", age: 34}
*/
-
降序排序
let students = [
{name: "zs", age: 34},
{name: "ls", age: 18},
{name: "ww", age: 22},
{name: "mm", age: 28},
];
students.sort(function (o1, o2) {
return o2.age - o1.age;
});
console.log(students);
/*
0: {name: "zs", age: 34}
1: {name: "mm", age: 28}
2: {name: "ww", age: 22}
3: {name: "ls", age: 18}
*/