The task is to sort the JavaScript array on multiple columns with the help of JavaScript. There are two approaches that are discussed below.
Approach 1: Combine the multiple sort operations by OR operator and comparing the strings. For comparing the string, we will use the localeCompare() method.
Example: This example implements the above approach. First sorting on four columns and then on the two columns.
<!DOCTYPE HTML> <html>   <head>     <title>         How to sort an array on multiple         columns using JavaScript?     </title> </head>   <body style="text-align:center;">       <h1>GeeksForGeeks</h1>           <p id="GFG_UP"></p>           <button onclick="GFG_Fun();">         Click Here     </button>           <p id="GFG_DOWN"></p>           <script>         var up = document.getElementById('GFG_UP');         var down = document.getElementById('GFG_DOWN');         var arr = [             [1, 'GFG', 2, 'Geek'],             [3, 'g', 1, 'for'],             [2, 'portal', 0, 'Geeks'],         ];         up.innerHTML = "Click on the button to sort "                 + "the array on multiple columns on "                 + "strings.< br > [" + arr[0]                 + "] < br > [" + arr[1] + "] < br > ["                 + arr[2] + "]";           function GFG_Fun() {             arr.sort(function (a, b) {                 return a[3].localeCompare(b[3])                         || a[1].localeCompare(b[1]);             });               down.innerHTML = "[" + arr[0] + "]<br>["                     + arr[1] + "]<br>[" + arr[2] + "]";         }     </script> </body>   </html> |
Output:
Approach 2: If we sorting the elements on numbers then use the Comparison operators to compare the values. The idea is to first perform the operation on a single column and if the values are similar then move to the next column and do the same.
Example: This example implements the above approach.
First sorting on three columns and then on one column.
<!DOCTYPE HTML> <html>   <head>     <title>         How to sort an array on multiple         columns using JavaScript?     </title> </head>   <body style="text-align:center;">       <h1>GeeksForGeeks</h1>       <p id="GFG_UP"></p>           <button onclick="GFG_Fun();">         Click Here     </button>           <p id="GFG_DOWN"></p>           <script>         var up = document.getElementById('GFG_UP');         var down = document.getElementById('GFG_DOWN');         var arr = [             [1, 'GFG', 2, 'Geek'],             [3, 'g', 0, 'for'],             [2, 'portal', 0, 'Geeks'],         ];         up.innerHTML = "Click on the button to sort "                 + "the array on multiple columns on "                 + "strings.< br > [" + arr[0]                 + "] < br > [" + arr[1]                 + "] < br > [" + arr[2] + "]";           function GFG_Fun() {             arr.sort(function (a, b) {                 var o1 = a[2];                 var o2 = b[2];                 var p1 = a[0];                 var p2 = b[0];                 if (o1 < o2) return -1;                 if (o1 > o2) return 1;                 if (p1 < p2) return -1;                 if (p1 > p2) return 1;                 return 0;             });               down.innerHTML = "[" + arr[0] + "]<br>["                     + arr[1] + "]<br>[" + arr[2] + "]";         }     </script> </body>   </html> |
Output:

