Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
¿Immutablejs permite buscar con un tipo de referencia?

Tengo un fragmento de código que se parece a esto

 const { Map } = require('immutable@4.0.0') let map = new Map().setIn(["user",["alex","country"]],"Poland") map.getIn(["user",["alex","country"])

Espero que lo anterior devuelva "Poland" , pero no es así. Supongo que el tipo de referencia ["alex", "country"] se serializa de manera diferente al configurar y consultar. Cualquier ayuda sobre cómo lograr esto sería útil. Evito tener que manejar la serialización de Array manualmente

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La matriz no está serializada. immutable usa el objeto real (su referencia) como clave y el operador igual para comparar claves. Eso significa que la primera ["alex","country"] y la segunda ["alex","country"] son dos claves diferentes.

Este fragmento muestra el problema:

 if (['alex', 'country'] !== ['alex', 'country']) { console.log('The references are different'); }

tengo 3 soluciones:

1. Almacenar una referencia en una variable

Puede almacenar una referencia a la matriz en una variable para usarla como clave:

 const { Map } = require('immutable'); const arr = ['alex', 'country']; let map = new Map().setIn(['user', arr], 'Poland'); console.log(map.getIn(['user', arr]));

2. Serialice la matriz usando toString

Una solución alternativa es serializar los arreglos usando toString :

 const { Map } = require('immutable@4.0.0') let map = new Map().setIn(["user",["alex","country"].toString()],"Poland") map.getIn(["user",["alex","country"].toString()])

Fragmento de ejemplo:

 if (['alex', 'country'].toString() === ['alex', 'country'].toString()) { console.log('The serialized arrays are equal'); }

Pero recuerde que la serialización de diferentes matrices puede generar la misma cadena:

 if (['alex', 'country'].toString() === ['alex,country'].toString()) { console.log('Serializing different arrays can yield the same string'); }

3. Aplane la matriz

Otro enfoque es aplanar la matriz de ruta:

 const { Map } = require('immutable'); let map = new Map().setIn(['user', ['alex', 'country']].flat(), 'Poland'); console.log(map.getIn(['user', ['alex', 'country']].flat()));
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!