假如有以下的數組:
var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];
這里如果我們要按每個子數組的第一列來排序要如何做呢,我們可以定義一個比較函數:
arr.sort(function(x, y){
return x[0] – y[0];
});
這里的比較函數的作用是什么呢?其實是數組依次將數組元素復制給x,y,比如首先將arr[0]賦給x,arr[1]賦給y,然后用x[0] – y[0],根據返回的值,如果返回的是大于0的數,那么就把數組中x放到y的后面,如果返回的是0則不變,小于0則將x放到y的前面,然后第一個排序好之后在進行下面兩個的排序,直到整個數組排序完成。這是默認升序的比較函數,如果要降序排列則只需修改比較方式,改為 return y[0] – x[0] 即可,這里我們x[0]表示是按第一列進行排序,我們這里也可以按其他列進行排序。這里的排序默認就會修改arr的數組結構,所以排序完arr就是按第一列升序的數組了。