僅對 JavaScript 中的 2-D 陣列進行列排序


我們需要編寫一個 JavaScript 函式,它接收一個多維整型陣列作為唯一引數。

該函式應按升序或降序對陣列列中存在的元素進行排序。

例如 -

如果輸入陣列是 -

const arr = [
   [6, 2, 9],
   [8, 1, 4],
   [5, 3, 7]
];

那麼陣列應如下排序 -

const output = [
   [8, 3, 9],
   [6, 2, 7],
   [5, 1, 4]
];

示例

以下是程式碼 -

const arr = [
   [6, 2, 9],
   [8, 1, 4],
   [5, 3, 7]
];
const sortColumns = (arr = []) => {
   const transpose = (matrix = []) => {
      const res = [];
      for (let row = 0; row < matrix.length; row++) {
         for (let col = 0; col < matrix[row].length; col++) {
            if(!res[col]){
               res[col] = [];
            }
            res[col][row] = matrix[row][col];
         }
      }
      return res;
   };
   arr = transpose(arr);
   for (let row = 0; row < arr.length; row++) {
      arr[row].sort((a, b) => b - a);
   }
   return transpose(arr);
};
console.log(sortColumns(arr));

輸出

以下是控制檯輸出 -

[ [ 8, 3, 9 ], [ 6, 2, 7 ], [ 5, 1, 4 ] ]

更新時間:2021 年 1 月 23 日

677 瀏覽次數

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.