¿Cómo ordenar un mapa en JavaScript?

Mapa en JavaScript es un tipo especial de objeto que almacena elementos en términos de par [clave, valor] . El mapa puede almacenar tanto elementos primitivos como objetos. Al iterar sobre el objeto del mapa, devuelve el par [clave, valor] en el mismo orden en que se insertó.

En este artículo, veremos cómo ordenar el Mapa según el valor de las claves. Una forma de lograr este objetivo es utilizar la función de clasificación() incorporada disponible en JavaScript en la array multidimensional creada con la ayuda de la desestructuración de la array del objeto generado por el método Map.entries()

Sintaxis:

[...map1.entries()] 
# this will generate a multi-dimensional array 
# out of the key-value pairs stored in the map

Ahora ordenaremos esta array en orden creciente usando la función de clasificación , por defecto ordenará la array de acuerdo con los valores crecientes de los primeros elementos almacenados en las arrays.

[...map1.entries()].sort()

Entendamos usando ejemplos.

Ejemplo 1: En este ejemplo, estamos ordenando el mapa por los valores crecientes de las claves.

Javascript

<script>
    // Initializing and inserting values into Map
    let map1 = new Map([
      [4, 2],
      [2, 3],
    ]);
     
    // Inserting new element into map using set() method
    map1.set(3, 10);
    document.write("Our map :", "</br>");
    document.write(map1, "</br>");
     
    // Adding the sorting logic
    map1 = new Map([...map1.entries()].sort());
     
    // Separately printing only keys
    for (let [key, value] of map1) {
      document.write(key, " ");
    }
</script>

Producción:

Our map :
Map(3) { 4 => 2, 2 => 3, 3 => 10 }
2 3 4

Ejemplo 2: En este ejemplo, estamos ordenando el mapa por los valores decrecientes de las claves.

Javascript

<script>
    let map1 = new Map([
      [4, 2],
      [2, 3],
    ]);
     
    // Inserting new element into map using set() method
    map1.set(3, 10);
    document.write("Our map :", "</br>");
    document.write(map1, "</br>");
     
    // Adding the custom sorting logic to sort
    // by decreasing values of keys
    map1 = new Map([...map1.entries()].sort((a, b) => b[0] - a[0]));
     
    // Separately printing only keys
    for (let [key, value] of map1) {
      document.write(key, " ");
    }
</script>

Producción:

Our map :
Map(3) { 4 => 2, 2 => 3, 3 => 10 }
4 3 2

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 *