JavaScript 二維數組sort排序

假如有以下的數組:

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就是按第一列升序的數組了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容