sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。
不传入参数,不会按照数值大小进行排序,按照字符编码顺序排序
var arr = ['a','f','s','b','A'];
console.log(arr.sort()); //["A", "a", "b", "f", "s"]
var arr1 = [5,4,23,111,3]
console.log(arr1.sort()) //[111, 23, 3, 4, 5]
传入参数,比较参数大小,此时是原数组发生改变
var arr = [5,4,23,111,3]
arr.sort(function(a,b){
return a-b;
})
console.log(arr) //[3, 4, 5, 23, 111]
若想要根据数组中的对象的某个属性值进行排序
var arr = [{id:10},{id:5},{id:6},{id:9},{id:2},{id:3}];
arr.sort(function(a,b){
return a.id - b.id;
})
console.log(arr)
//输出新的排序
// {id: 2}
// {id: 3}
// {id: 5}
// {id: 6}
// {id: 9}
// {id: 10}
根据数组中的对象的多个属性值排序,实现多条件排序
var arr6 = [{id:10,age:2},{id:5,age:4},{id:6,age:10},{id:9,age:6},{id:2,age:8},{id:10,age:9}];
arr6.sort(function(a,b){
if(a.id === b.id){//如果id相同,按照age的降序
return b.age - a.age
}else{
return a.id - b.id
}
})
console.log(arr6);
//输出新的排序
// {id: 2, age: 8}
// {id: 5, age: 4}
// {id: 6, age: 10}
// {id: 9, age: 6}
// {id: 10, age: 9}
// {id: 10, age: 2}