var arr = [3,4,2,-4,9,-5,33,7,12];
function compare(v1,v2){
// v1 -->代表每一次执行匿名函时候,找到的数组中的当前项;
// v2 -->代表当前项的后一项;
return v1-v2;// 升序时: 如果v1>v2,那么返回的值>0,v1和v2交换位置;
//return v2-v1; 降序时: 如果v2>v1,那么返回的值>0,v1和v2交换位置;
//-> 原理:return的值可能是一个大于0的数也或者可能是小于等于0的数,如果return后 的值大于0则让数组v1和v2交换一下位置;小于等于0,则原来数组中的位置不变;
//return 1; 表示不管a和b谁大,每一次都返回一个恒大于0的数,也就是说每一次v1和v2都要交换位置,最后的结果就是原有数组倒过来排列了,相当于数组的reverse()方法;
};
arr.sort(compare);
conosle.log(arr);
//打印结果
[-5, -4, 2, 3, 4, 7, 9, 12, 33]
//compare 函数是作为sort方法的比较函数 如果
function compare(v1,v2){
return v2-v1;
};
//则打印结果为:
[33, 12, 9, 7, 4, 3, 2, -4, -5]
网友评论