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

152
Vistas
Omita el elemento en .map sin agregar .filter, etc.

Estoy buscando una solución hermosa. Tengo elementos de matriz. El elemento consiste en user_id y alguna otra información. Necesito mapear todos los elementos y para cada elemento encontrar al usuario con la identificación adecuada. Luego agregue al elemento alguna información del usuario

 items = items.map((item) => { let user = users.find(u => item.user_id === u.id); item.email = user.email; item.user_name = user.name; return item; });

Pero si el usuario con item.user_id no existe, no debo hacer nada. Ya tengo iteraciones de dos arreglos y no quiero agregar más

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Depende de lo que quieras decir con "omitir elemento".

Si quiere decir "no incluirlo en la matriz de salida", entonces tendrá que dejar de lado el map , porque el map siempre producirá un elemento de salida para un elemento de entrada. En su lugar, puede simplemente recorrer empujando a una nueva matriz:

 const originalItems = items; items = []; for (const item of originalItems) { let user = users.find(u => item.user_id === u.id); if (user) { item.email = user.email; item.user_name = user.name; items.push(item); } }

Si solo quiere decir "no agregue la información del user " (pero mantenga los elementos a los que no agrega información), entonces puede ramificar:

 items = items.map((item) => { let user = users.find(u => item.user_id === u.id); if (user) { item.email = user.email; item.user_name = user.name; } return item; });

Sin embargo, eso plantea la pregunta de por qué está usando el map , ya que no parece haber muchas razones de inmediato para crear una nueva matriz con los mismos objetos (incluso si estamos agregando a esos objetos). Si está utilizando algo como React, donde las actualizaciones de estado no deben modificar los objetos existentes, le gustaría crear un nuevo item para cualquier elemento que haya cambiado:

 items = items.map((item) => { let user = users.find(u => item.user_id === u.id); if (user) { item = { ...item, email: user.email, user_name = user.name, }; } return item; });

Pero puede que no estés haciendo eso, no lo has dicho.

about 4 years ago · Santiago Trujillo Denunciar

0

Tal vez intente:

 array.map(x => condition ? parse(x) : x);

algo como eso

about 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