Ervin Santos
Ervin Santos
Full Stack Web Developer Freelancer
Ervin Santos

Blog

Cómo filtrar un Map en JavaScript

Cómo filtrar un Map en JavaScript

Utilice el método forEach() para filtrar un Map en JavaScript. El método obtiene llamado con cada par clave-valor en el Map, donde podemos comprobar si hay una condición y utilizar el métododelete() para eliminar cualquiera de los elementos del Map que queramos filtrar.

para hacer uso de la funcion forEach() utilizaremos un pequeño ejemplo de un objeto Map.

const map1 = new Map([
  ['num1', 1],
  ['num2', 2],
  ['num3', 3],
]);

map1.forEach((value, key) => {
  if (value > 1) {
    map1.delete(key);
  }
});

console.log(map1); // => {'num1' => 1}

Usamos el método Map.forEach para iterar sobre el objeto Map.

Se llama a la función que pasamos al método para cada clave-valor par de theand obtiene los siguientes parámetros: 'forEach()' 'Map'

  1. 'value' -> el valor de la iteración
  2. 'key'   -> la clave de la iteración
  3. 'map'   -> el objeto Map

Hacemos uso de for como condición y  delete para eliminar cualquiera de los elementos que no necesitamos en el. 'value' 'key' 'Map'

Un enfoque alternativo es convertir el método en una matriz y utilizar elmétodo. 'Map' 'filter'

Para filtrar un Map en JavaScript:

  1. Convertir ela en una matriz. 'Map'
  2. Utilice el método para iterar sobre la matriz. 'filter()'
  3. Excluya los elementos que no coincidan con la condición.
  4. Vuelva a convertir la matriz en a. 'Map'
const map1 = new Map([
  ['num1', 1],
  ['num2', 2],
  ['num3', 3],
]);

const filtered = new Map(
  Array.from(map1).filter(([key, value]) => {
    if (value > 1) {
      return true;
    }

    return false;
  }),
);

console.log(filtered); // => {'num2' => 2, 'num3' => 3}

Utilizamos el método para convertirlo en una matriz de clave-valor Pares. 'Array.from' 'Map'

const map1 = new Map([
  ['num1', 1],
  ['num2', 2],
  ['num3', 3],
]);

console.log(Array.from(map1)); // => [['num1', 1], ['num2', 2], ['num3', 3]]

 

Cuando convertimos theto a una matriz, recuperamos una matriz bidimensional, en que podemos llamar el método. 'Map' 'filter'

El primer elemento de cada submatriz es la clave, y el segundo, el valor correspondiente.

Usamos la asignación de desestructuración para desestructurar la clave y el valor en la función de devolución de llamada que pasamos al método. filter

const [key, value] = ['num1', 1];

console.log(key); // => num1
console.log(value); // => 1

 

En la función de devolución de llamada comprobamos si hay una condición y devolvemos si el condición se cumple y de lo contrario. 'true' 'false'

El método devuelve una nueva matriz que contiene sólo los elementos, para los cuales La función de devolución de llamada devolvió un valor veraz. 'filter'

El último paso es convertir la matriz de nuevo para usar el constructor Map(). Map

Agregar comentario