一、 sort()方法的介绍
//给一组数据排序
var arrNum = [12,1,9,23,56,100,88,66];
console.log("排序前的数组:"+arrNum);
arrNum.sort();//默认按照字母排序
console.log("排序后的数组:"+arrNum);
//对数组进行升序排列,将函数作为参数传入
arrNum.sort(function (a,b) {
return a-b;//数组中两两比较,结果为正(a>b),则互换位置,小的在前面(从索引0开始,分别和后面元素比较)
});
console.log("升序排序后的数组:"+arrNum);
//对数组进行降序排列,将函数作为参数传入
arrNum.sort(function (a,b) {
return b-a;//数组中两两比较,结果为正,则互换位置,大的在前面
});
console.log("降序排序后的数组:"+arrNum);
二、 sort()方法的高级应用(按照对象数组中对象的属性进行排序)
function Student(name,age,score) {
this.name = name;
this.age = age;
this.score = score;
}
var stu1 = new Student("寒殇凌雪",23,100);
var stu2 = new Student("花木扶疏",25,97);
var stu3 = new Student("北城以北",20,95);
var stu4 = new Student("南柯一梦",24,99);
var stu5 = new Student("水墨淡彩",22,95);
var arr = [];
arr.push(stu1,stu2,stu3,stu4,stu5);
console.log("排序前输出每一个索引对应的值如下:")
for(i in arr){
console.log(arr[i]);
}
// arr.sort(upSort("score"));
arr.sort(upSort("score","age"));
console.log("升序排列后输出每一个索引对应的值如下:")
for(i in arr){
console.log(arr[i]);
}
//arr.sort(lowSort("score"));
arr.sort(lowSort("score","age"));
console.log("降序排列后输出每一个索引对应的值如下:")
for(i in arr){
console.log(arr[i]);
}
/* //升序排列
function upSort(property) {//指定某个属性的排序
return function (a,b) {
return a[property] - b[property];
}
}*/
function upSort(score,age) {//指定某个属性的排序
return function (a,b) {
if(a.score == b.score){//当分数相等,按照年龄排序
return a.age - b.age;
}
return a.score - b.score;
}
}
//降序排列
/* function lowSort(property) {//指定某个属性的排序
return function (a,b) {
return b[property] - a[property];
}
}*/
function lowSort(score,age) {//指定某个属性的排序
return function (a,b) {
if(a.score == b.score){//当分数相等,按照年龄排序
return b.age - a.age;
}
return b.score - a.score;
}
}
/*var arr1 = [12,8,45,10];
arr1.sort(function (a,b) {
return a-b;//升序
});
console.log(arr1);
arr1.sort(function (b,a) {
return a-b;//升序
});
console.log(arr1)*/