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