Open In App

How to sort a set in JavaScript ?

Last Updated : 03 Jun, 2024
Comments
Improve
Suggest changes
3 Likes
Like
Report

Sorting a Set based on the values of its elements is a common need in JavaScript. While the built-in sort() function can't be directly applied to a Set, there's a workaround. Let's explore how we can achieve this:

Instead of directly sorting the Set, we'll:

  1. Convert the Set into an array to make it sortable.
  2. Utilize the sort() function on the array to arrange its elements based on their values.
  3. Optionally, convert the sorted array back into a Set if needed.

By following these steps, we can effectively sort the Set according to the values of its elements.

Below are the approaches through which we can sort the set:

Approach 1: By iterating over the set

In this approach, we will iterate over the set manually and insert elements of the set into a new array that is about to get sorted according to our needs.

Syntax:

# myset is the set under consideration for this article
let myarr = [];
    for (let element of myset) {
        // Set elements pushed into the array
        myarr.push(element);
    }
# myArray consists of the elements of the set
myArray.sort()

Example: In this example, we are iterating over the set.


Output
Set(4) { 3, 2, 9, 6 }
[ 3, 2, 9, 6 ]
Set(4) { 2, 3, 6, 9 }

Approach 2. Using Array.from() Method

One way of generating the array is to use the in-built Array.from() Method which will create an array out of the elements of the set. To know more about the method, follow this link.

Syntax:

# myset is the set under consideration for this article
myArray = Array.from(myset)
myArray.sort()

Example: In this example, we are using Array.from() Method


Output
Set(4) { 3, 2, 9, 6 }
[ 2, 3, 6, 9 ]
Set(4) { 2, 3, 6, 9 }

Approach 3: Using Spread Operator and Sort Method

In this method, we will convert the set into an array using spread syntax, and then by using the sort function we sort the set.

Example: In this example, we are Using Spread Operator and Sort Method


Output
Set(4) { 3, 2, 9, 6 }
Set(4) { 2, 3, 6, 9 }

Similar Reads