Sort Array in descending order JavaScript | 3 Ways code

You can use the sort() method to sorts the values as strings in alphabetical and descending order in JavaScript. By default, this method sorts values in ascending order.

Note: This method changes the original array.

Example of Sort Array in descending order JavaScript

HTML Example code Sort numbers in an array in descending order:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
        <script type="text/javascript">
        var ab = [40, 30, 10, 50, 20, 60];
        ab.sort(function(a, b){return b-a});

        alert(ab);
    </script>
</script>

</head>
<body>

</body>
</html>

Output:

Sort Array in descending order JavaScript

What are the ways to sort strings in descending order in JavaScript?

Answer: There a many ways to sort string in JavaScript, we are trying only with 3 most common ways:-

obj.sort().reverse();

Or

obj.sort((a, b) => (a > b ? -1 : 1))

Or

obj.sort((a, b) => b.localeCompare(a) )

The performance winner is : obj.sort().reverse().

Testing with an array of 10.000 elements, obj.sort().reverse() is faster than obj.sort( function ) (except on chrome), and obj.sort( function ) (using localCompare).

Performance test here :

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
        var results = [[],[],[]]

        for(let i = 0; i < 100; i++){
          const randomArrayGen = () => Array.from({length: 10000}, () => Math.random().toString(30));
          const randomArray = randomArrayGen();
          const copyArray = x => x.slice();

          obj = copyArray(randomArray);
          let t0 = performance.now();
          obj.sort().reverse();
          let t1 = performance.now();

          obj = copyArray(randomArray);
          let t2 = performance.now();
          obj.sort((a, b) => (a > b ? -1 : 1))
          let t3 = performance.now();

          obj = copyArray(randomArray);
          let t4 = performance.now();
          obj.sort((a, b) => b.localeCompare(a))
          let t5 = performance.now();  

          results[0].push(t1 - t0);
          results[1].push(t3 - t2);
          results[2].push(t5 - t4);  
      }

      const calculateAverage = x => x.reduce((a,b) => a + b) / x.length ;

      console.log("obj.sort().reverse():                   " + calculateAverage(results[0]));
      console.log("obj.sort((a, b) => (a > b ? -1 : 1)):   " + calculateAverage(results[1]));
      console.log("obj.sort((a, b) => b.localeCompare(a)): " + calculateAverage(results[2]));
  </script>

</head>
<body>

</body>
</html>

Output:

efficient sort strings in descending order in JavaScript

Source: stackoverflow…

Do comment if you know much better example or have any doubts on this topic.

Note: The All JS Examples codes are tested on the Firefox browser and the Chrome browser.

OS: Windows 10

Code: HTML 5 Version


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.