Saltar al contenido

Cómo fusionar una lista de mapas por clave en Immutable.js

Hay varias maneras de fusionar los mapas.

fusionar() Método

Podemos fusionar las colecciones de mapas usando el método merge(). Esto devuelve una copia de la colección con el resto de las colecciones fusionadas.

Cómo fusionar una lista de mapas por clave en Immutable.js
Cómo fusionar una lista de mapas por clave en Immutable.js
12345678import{Map, fusionar }de "inmutable";constPerson=Map({ nombre: "John", edad:32});constMutatedPerson=merge(Persona,{ edad:35});console.log(Persona);console.log(PersonaMutada);

js

Obtenemos los mismos resultados que el ejemplo anterior cuando ejecutamos el código anterior.

El método merge() también puede ser usado para fusionar colecciones de mapas.

1234567891011importar{Map, fusionar }de "inmutable";constMap1=Map({ a:29, b:88, c:56});constMap2=Map({ a:38, b:45, z:99});constMap fusionado=fusión(Mapa1,Mapa2);consola. log("Mapa1 - ",Mapa1);console.log("Mapa2 - ",Mapa2);console.log("MergedMap - ",MergedMap);

js

Como pueden ver, las propiedades de la anterior colección de mapas fueron anuladas por la siguiente colección, y los pares clave-valor únicos se añadieron a la colección de mapas fusionada. Una vez más, las colecciones originales de Mapas no fueron mutadas y están intactas.

fusionarWith()

La función mergeWith() nos permite manejar los pares clave-valor existentes pasando una función de fusión como primer parámetro, en lugar de simplemente anular el valor existente.

Por ejemplo, digamos que tenemos que añadir los valores de las claves de fusión.

123456789101112131415importar{Map, fusionarCon }de "inmutable";constMap1=Map({ a:29, b:88, c:56});constMap2=Map({ a:38, b:45, z:99});constMap fusionado=fusionarCon((Valorantiguo, nuevoValor)= log("Mapa1 - ",Mapa1);console.log("Mapa2 - ",Mapa2);console.log("MergedMap - ",MergedMap);

js

fusionarDeep

La función mergeDeep() es similar a la función merge() excepto que puede fusionar las colecciones de forma recursiva.

Por ejemplo, considere los siguientes mapas.

123constMap1=Mapa({ a:29, b:88, c:56, d:{ da:77}});constMap2=Mapa({ a:38, b:45, z:99, d:{ db:96}});

js

Si usamos la función merge(), la tecla d simplemente será anulada.

1234567constMap1=Map({ a:29, b:88, c:56, d:{ da:77}});constMap2=Map({ a:38, b:45, z:99, d:{ db:96}});constMap Fusionado=fusión(Mapa1,Mapa2);console.log("MergedMap - ",MergedMap);

js

Ahora echemos un vistazo cuando usemos la función mergeDeep().

1234567constMap1=Map({ a:29, b:88, c:56, d:{ da:77}});constMap2=Map({ a:38, b:45, z:99, d:{ db:96}});constMergedMap=mergeDeep(Map1,Map2);console.log("MergedMap - ",MergedMap);

js

Los valores de la clave d se fusionaron para formar un nuevo valor que se asigna en el MergedMap.