sort方法

数组sort方法在不传递参数的情况下会调用toString()转型方法,然后比较得到的字符串,以确定如何排序。

上面这段话摘自高程三中对sort的描述,更直白点:不传递参数是按照字符编码表的顺序进行排序的:

var arr = [12,10,8,7,20,11];
arr.sort();

console.log(arr);    // [10,11,12,20,7,8];

  

sort方法可以接收一个比较函数作为参数,比较函数接收两个参数:

  如果第一个参数应该位于第二个之前则返回一个负数

  如果两个参数相等则返回0,

  如果第一个参数应该位于第二个之后则返回一个正数

var log = console.log.bind("console");

var arr = [12,10,8,7,20,11];

function compare (value1,value2) {
        if(value1 < value2) {
              return -1;
        } else if(value1 > value2) {
              return 1;
        } else {
              return 0;
        }
}

log(arr.sort(compare));    //  [7,8,10,11,12,20]

  

posted @ 2018-01-25 10:26  wlgz  阅读(363)  评论(0编辑  收藏  举报