¿Cómo ordenar un conjunto en JavaScript?

Un Conjunto en JavaScript es un tipo especial de objeto que almacena distintos elementos. El conjunto puede almacenar tanto elementos primitivos como objetos. Al iterar sobre el objeto establecido, devuelve los elementos en el mismo orden en que se insertaron.

En este artículo veremos cómo ordenar el Conjunto según el valor de los elementos. Una forma de lograr el objetivo es usar la función sort() incorporada. Pero, la función sort() no se puede implementar directamente en el set, sino:

  • Generaremos un contenedor de array utilizando los elementos almacenados en el conjunto.
  • Luego, ejecutaremos la función sort() en la array.
  • Borraremos todo el conjunto y almacenaremos los elementos almacenados en la array recién ordenada.

Como el conjunto devuelve elementos en el mismo orden en que se insertaron, ahora se ordenará todo el conjunto.

Una cosa a tener en cuenta es que aquí en este artículo ordenaremos el conjunto en orden ascendente, pero el orden de clasificación se puede ajustar según las necesidades implementando la lógica de clasificación. Ahora veremos diferentes enfoques para generar arreglos para lograr nuestro propósito.

Enfoque 1. Iteración manual sobre el conjunto: en este enfoque, iteraremos sobre el conjunto manualmente e insertaremos elementos del conjunto en una nueva array que está a punto de ordenarse según nuestras necesidades.

Sintaxis:

# 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()

Ejemplo:

JavaScript

<script>
    // Initialize a Set object
    // using Set() constructor
    let myset = new Set()
 
    // Insert new elements in the
    // set using add() method
    myset.add(3);
    myset.add(2);
    myset.add(9);
    myset.add(6);
 
    // Print the values stored in set
    console.log(myset);
 
    // Create a new array to store set elements
    let myarr = [];
 
    for (let element of myset) {
 
        // Set elements pushed into the array
        myarr.push(element);
    }
 
    // Print the values stored in Array
    console.log(myarr);
 
    // Sort the array (default it will sort
    // elements in ascending order)
    myarr.sort()
 
    // Clear the entire set using clear() method
    myset.clear()
 
    for (let element of myarr) {
 
        // Array elements pushed into the set
        myset.add(element);
    }
 
    // Print the values stored in set
    console.log(myset);
</script>

Producción:

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

Enfoque 2. Usando el método Array.from(): Una forma de generar la array es usar el método Array.from() integrado que creará una array a partir de los elementos del conjunto. Para saber más sobre el método, sigue este enlace.

Sintaxis:

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

Ejemplo:

JavaScript

<script>
    // Initialize a Set object
    // using Set() constructor
    let myset = new Set()
 
    // Insert new elements in the
    // set using add() method
    myset.add(3);
    myset.add(2);
    myset.add(9);
    myset.add(6);
 
    // Print the values stored in set
    console.log(myset);
 
    // Create a new array to store set elements
    let myarr = [];
 
    for (let element of myset) {
 
        // Set elements pushed into the array
        myarr.push(element);
    }
 
    // Print the values stored in Array
    console.log(myarr);
 
    // Sort the array (default it will sort
    // elements in ascending order)
    myarr.sort()
 
    // Clear the entire set using clear() method
    myset.clear()
 
    for (let element of myarr) {
 
        // Array elements pushed into the set
        myset.add(element);
    }
 
    // Print the values stored in set
    console.log(myset);
</script>

Producción:

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

Publicación traducida automáticamente

Artículo escrito por shinjanpatra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *