Hướng dẫn sort 2d array javascript - sắp xếp javascript mảng 2d

Đứng trên vai của Charles-Clayton và @Vikas-Gautam, tôi đã thêm thử nghiệm chuỗi cần thiết nếu một cột có chuỗi như trong OP.

return isNaN(a-b) ? (a === b) ? 0 : (a < b) ? -1 : 1 : a-b  ;

Thử nghiệm isNaN(a-b) xác định xem các chuỗi không thể bị ép buộc với các số. Nếu họ có thể kiểm tra a-b là hợp lệ.

Lưu ý rằng việc sắp xếp một cột gồm các loại hỗn hợp sẽ luôn mang lại kết quả giải trí vì bài kiểm tra bình đẳng nghiêm ngặt (a === b) sẽ luôn trả về sai. Xem MDN tại đây

Đây là tập lệnh đầy đủ với kiểm tra logger - sử dụng tập lệnh Google Apps.

function testSort(){

function sortByCol(arr, colIndex){
    arr.sort(sortFunction);
    function sortFunction(a, b) {
        a = a[colIndex];
        b = b[colIndex];
       return isNaN(a-b) ? (a === b) ? 0 : (a < b) ? -1 : 1 : a-b  ;  // test if text string - ie cannot be coerced to numbers.
       // Note that sorting a column of mixed types will always give an entertaining result as the strict equality test will always return false
       // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness

       }
}
// Usage
var a = [ [12,'12', 'AAA'],
          [12,'11', 'AAB'],
          [58,'120', 'CCC'],
          [28,'08', 'BBB'],
          [18,'80', 'DDD'],
        ]
    var arr1 = a.map(function (i){return i;}).sort();  // use map to ensure tests are not corrupted by a sort in-place.

    Logger.log("Original unsorted:\n     " + JSON.stringify(a));
    Logger.log("Vanilla sort:\n     " + JSON.stringify(arr1));
    sortByCol(a, 0);
    Logger.log("By col 0:\n     " + JSON.stringify(a));
    sortByCol(a, 1);
    Logger.log("By col 1:\n     " + JSON.stringify(a));
    sortByCol(a, 2);
    Logger.log("By col 2:\n     " + JSON.stringify(a));

/* vanilla sort returns " [
                            [12,"11","AAB"],
                            [12,"12","AAA"],
                            [18,"80","DDD"],
                            [28,"08","BBB"],
                            [58,"120","CCC"]
                          ]
   if col 0 then returns "[
                            [12,'12',"AAA"],
                            [12,'11', 'AAB'],
                            [18,'80',"DDD"],
                            [28,'08',"BBB"],
                            [58,'120',"CCC"]
                          ]"
   if col 1 then returns "[
                            [28,'08',"BBB"],
                            [12,'11', 'AAB'],
                            [12,'12',"AAA"],
                            [18,'80',"DDD"],
                            [58,'120',"CCC"],

                          ]"
   if col 2 then returns "[
                            [12,'12',"AAA"],
                            [12,'11', 'AAB'],
                            [28,'08',"BBB"],
                            [58,'120',"CCC"],
                            [18,'80',"DDD"],
                          ]"
*/

}

JavaScript sắp xếp mảng đa chiều với các ví dụ mã

Trong phiên này, chúng tôi sẽ cố gắng giải quyết câu đố mảng đa chiều của JavaScript bằng cách sử dụng ngôn ngữ máy tính. Mã theo sau phục vụ để minh họa điểm này.

var arr = [[12, 'AAA'], [12, 'BBB'], [12, 'CCC'],[28, 'DDD'], [18, 'CCC'],[12, 'DDD'],[18, 'CCC'],[28, 'DDD'],[28, 'DDD'],[58, 'BBB'],[68, 'BBB'],[78, 'BBB']];

arr.sort(function(a,b) {
    return a[0]-b[0]
});

JavaScript sắp xếp mảng đa chiều. Có một cách chỉ một cách để giải quyết một vấn đề; Thay vào đó, có một số chiến lược riêng biệt có thể được sử dụng. Trong các ví dụ sau, chúng tôi sẽ thảo luận về một loạt các cách tiếp cận khác nhau có thể được thực hiện.

let arr = [[12, 'AAA'], [12, 'BBB'], [12, 'CCC'],[28, 'DDD'], [18, 'CCC'],[12, 'DDD'],[18, 'CCC'],[28, 'DDD'],[28, 'DDD'],[58, 'BBB'],[68, 'BBB'],[78, 'BBB']];

// sort by first column (numbers) using minus
arr.sort((a, b) => a[0]-b[0]);
/* [[12,"AAA"],[12,"BBB"],[12,"CCC"],[12,"DDD"],[18,"CCC"],[18,"CCC"],[28,"DDD"],[28,"DDD"],[28,"DDD"],[58,"BBB"],[68,"BBB"],[78,"BBB"]] */

// sort by second column (letters) using localeCompare
arr.sort((a, b) => a[1].localeCompare(b[1]));
/* VM704:1 [[12,"AAA"],[12,"BBB"],[58,"BBB"],[68,"BBB"],[78,"BBB"],[12,"CCC"],[18,"CCC"],[18,"CCC"],[12,"DDD"],[28,"DDD"],[28,"DDD"],[28,"DDD"]] */
/*//*\[email protected]________________/|*\*/
/**/  Array.prototype.sort2d = function(column) {              //
/**/  column = typeof column === "undefined" ? 0 : column      // 
/**/  return this.sort((a, b) => a[column]-b[column]); }       //
/**/  const unsorted2DArray = [[3,1,1,1],[9,3,3,3],[6,2,2,2]]  //
/**/  sorted2DArray = unsorted2DArray.sort2d()                 //
/**/  //sorted2DArray = [ [3,1,1,1],[6,2,2,2],[9,3,3,3] ]      //
/*//*\======================/*//*/=========================/||\*/

Như chúng ta đã thấy, JavaScript sắp xếp mã vấn đề mảng đa chiều đã được giải quyết bằng cách sử dụng một số trường hợp khác nhau.

Array_Multisort () có thể được sử dụng để sắp xếp một số mảng cùng một lúc hoặc một mảng đa chiều theo một hoặc nhiều chiều. Các phím liên kết (chuỗi) sẽ được duy trì, nhưng các khóa số sẽ được chỉ định lại.

Làm thế nào để bạn sắp xếp một mảng 2D?

Tạo mảng 2D thành một mảng đơn giản (1D) riêng biệt (Bước 1). Sau đó sử dụng các mảng. Sắp xếp () phương thức để sắp xếp mảng đơn giản (bước 2). Sau đó đặt mỗi không gian của mảng 2D là số lượng cột trên (tọa độ x nơi không gian sẽ được thay đổi) nhân với số lượng khoảng trống trên mỗi hàng trong mảng 2D.26-NOV-2013

Làm thế nào để bạn sắp xếp một danh sách đa chiều?

Để sắp xếp một danh sách hai chiều trong Python, hãy sử dụng phương thức Danh sách Sort (), làm biến đổi danh sách hoặc hàm Sắp xếp (), không có. Đặt tham số khóa cho cả hai loại bằng hàm Lambda và trả về một tuple của các cột để sắp xếp theo thứ tự sắp xếp cần thiết.

Bạn có thể sắp xếp một mảng trong JavaScript không?

JavaScript mảng sort () Sắp xếp () sắp xếp các phần tử của một mảng. Sắp xếp () ghi đè lên mảng gốc. Các loại () sắp xếp các yếu tố là chuỗi theo thứ tự bảng chữ cái và tăng dần.

Làm cách nào để sắp xếp cột mảng 2D khôn ngoan?

Cách tiếp cận: Thực hiện theo các bước dưới đây để giải quyết vấn đề:

  • Đi qua ma trận.
  • Tìm chuyển vị của thảm ma trận đã cho [] [].
  • Lưu trữ chuyển vị của mat [] [] trong một vectơ 2D, tr [] [] []
  • Đi qua các hàng của ma trận tr [] [] []
  • Sắp xếp từng hàng của ma trận bằng hàm sắp xếp.
  • Lưu trữ chuyển vị của tr [] [] trong mat [] [] []

Làm thế nào để bạn sắp xếp một mảng 2D trong Java dựa trên một hàng?

  • Sử dụng java.util.arrays.sort (t [] a, so sánh Super t> c) để sắp xếp một mảng 2D được cho là khôn ngoan.
  • Sử dụng java.util.arrays.sort (t [] a) để sắp xếp các mảng 2D khôn ngoan.

Làm thế nào để bạn bong bóng sắp xếp một mảng 2D?

Làm thế nào để bạn sắp xếp một ma trận khôn ngoan?

Được đề xuất: Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp.Approach: Sau đây là các bước:

  • Sắp xếp từng hàng của ma trận.
  • Nhận chuyển đổi của ma trận.
  • Một lần nữa sắp xếp từng hàng của ma trận.
  • Một lần nữa nhận được chuyển đổi của ma trận.

Làm thế nào để bạn sắp xếp một ma trận theo thứ tự tăng dần Java?

Cách tiếp cận: Tạo một mảng nhiệt độ [] có kích thước n^2. Bắt đầu với hàng đầu tiên một lần sao chép các phần tử của ma trận đã cho vào temp []. Sắp xếp tạm thời []. Bây giờ từng người một bản sao các yếu tố của temp [] trở lại ma trận đã cho.02-Aug-2022

Làm thế nào để bạn sắp xếp một mảng 2D theo thứ tự giảm dần Python?

Sắp xếp các hàng của mảng 2D theo thứ tự giảm dần, trục mã = ​​1 cho biết chúng ta sẽ sắp xếp dữ liệu theo hướng trục-1 và bằng cách sử dụng dấu âm ở phía trước tên mảng và tên hàm, mã sẽ sắp xếp các hàng theo thứ tự giảm dần.20-tháng 5 năm 2019