仅对 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 ] ]
广告