javascript数组排序
javaScript
数组排序
1、sort() 方法是最强大的数组方法之一。
sort() 方法以字母顺序对数组进行排序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
复制代码
//对 fruits 中的元素进行排序 默认是升序排序
fruits.sort();
2、反转数组
reverse() 方法反转数组中的元素。
您可以使用它以降序对数组进行排序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
// 对 fruits 中的元素进行排序
fruits.sort();
// 反转元素顺序
fruits.reverse();
3、数字排序
默认地,sort() 函数按照字符串顺序对值进行排序。
该函数很适合字符串("Apple" 会排在 "Banana" 之前)。
不过,如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1"。
正因如此,sort() 方法在对数值排序时会产生不正确的结果。
我们通过一个比值函数来修正此问题:
a、升序排序
var points = ['0', '100', '1', '5', '25', '10'];
//a-b是升序排序
points.sort(function(a, b){return a - b});
结果
b、降序排序
var points = ['0', '100', '1', '5', '25', '10'];
//a-b是升序排序
points.sort(function(a, b){return b - a});
结果:
4、对象排序
a、升序
var users = [{name:"张三",age:20},{name:"李四",age:5},{name:"王五",age:10},{name:"赵六",age:8}];
//userA.age - userB.age 按照年龄升序排序
users.sort(function(userA, userB){return userA.age - userB.age});
结果
b、降序
var users = [{name:"张三",age:20},{name:"李四",age:5},{name:"王五",age:10},{name:"赵六",age:8}];
//userB.age - userA.age 按照年龄降序排序
users.sort(function(userA, userB){return userB.age - userA.age});