对二维数组排序

  1. sort()方法怎么使用?
    sort()方法默认情况下按照升序排列数组项,sort()方法会调用toString()转型方法,然后比较得到的字符串,即使我们比较的是数字,他也会把数字转为字符串以后再排序。
    请看下面例子:
var arr1 = [0, 1, 3, 10, 16, 5, 9, 0, 3];
var arr2 = ['bangbang', 'father', 'mother', 'brother', 'sister', true, false, 0, 1, 6, 13];
console.log(arr1.sort()) //很明显,这样不是我们要的结果,[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ]
console.log(arr2.sort()); //[ 0,1,13,6,'bangbang','brother',false,'father','mother','sister',true]
//传入自定义回调函数之后
function ascend(a,b){
    return a-b;
}
//降序排列
function descend(a,b){
    return b-a;
}
console.log(arr1.sort(ascend));     //[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ]
console.log(arr1.sort(descend));    //[ 16, 10, 9, 5, 3, 3, 1, 0, 0 ]
  1. sort方法进行二维数组的排序
var arr1 = [[4,5,7],[11,3,6,100,77],[12,9,12,10],[3,1,2,99,22]];
function ascend(x,y){
    return x[3] - y[3];  //按照数组的第4个值升序排列
}
function descend(x,y){
    return y[0] - x[0];  //按照数组的第1个值升序排列
}
console.log(arr1.sort(ascend));
console.log(arr1.sort(descend));

参考资料:JavaScript中用sort方法进行二维数组排序 — 第5.2.5节

你可能感兴趣的:(对二维数组排序)