Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

316
Vistas
¿Cómo obtengo un objeto específico de un mapa js inmutable por valor?

Creé un mapa inmutable (con Immutable-JS ) a partir de una lista de objetos:

 var result = [{'id': 2}, {'id': 4}]; var map = Immutable.fromJS(result);

Ahora quiero obtener el objeto con id = 4 .

¿Hay una manera más fácil que esta:

 var object = map.filter(function(obj){ return obj.get('id') === 4 }).first();
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Esencialmente, no: está realizando una búsqueda de lista por valor, no por índice, por lo que siempre será un recorrido lineal.

Una mejora sería usar find en lugar de filter :

 var result = map.find(function(obj){return obj.get('id') === 4;});
over 4 years ago · Santiago Trujillo Denunciar

0

Lo primero que debe tener en cuenta es que en realidad no está creando un mapa, está creando una lista:

 var result = [{'id': 2}, {'id': 4}]; var map = Immutable.fromJS(result); Immutable.Map.isMap(map); // false Immutable.List.isList(map); // true

Para crear un mapa, puede usar un argumento reviver en su llamada toJS ( docs ), pero ciertamente no es la API más intuitiva, alternativamente puede hacer algo como:

 // lets use letters rather than numbers as numbers get coerced to strings anyway var result = [{'id': 'a'}, {'id': 'b'}]; var map = Immutable.Map(result.reduce(function(previous, current) { previous[ current.id ] = current; return previous; }, {})); Immutable.Map.isMap(map); // true

Ahora tenemos un mapa Immutable.js adecuado que tiene un método get

 var item = Map.get('a'); // {id: 'a'}
over 4 years ago · Santiago Trujillo Denunciar

0

Cuando use fromJS para la matriz, obtendrá List not map. Será mejor y más fácil si creas un mapa. El siguiente código convertirá el resultado en un mapa inmutable.

 const map = result.reduce((map, json) => map.set(json.id, Immutable.fromJS(json)) , Map());

Ahora usted puede

 map.get('2'); //{'id': 2}

Tenga en cuenta que si el resultado tiene una estructura anidada y si tiene una matriz, será una lista con el código anterior.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda