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

151
Vistas
compare dos matrices y coloque un estado en otra matriz si existe o no

así que tengo una matriz con todos los jugadores y una con solo el que está seleccionado y quiero tener otra matriz con el estado si está seleccionado o no. Traté de comparar y presionar el elemento con el estado, pero no logré lo que quería.

aquí están las matrices

 const all = [ { playerId: '294', firstName: 'MMM', }, { playerId: '295', firstName: 'arkiv', }, { playerId: '296', firstName: 'julio', }, { playerId: '297', firstName: 'sss', }, ]; const selected = [ { playerId: '296', firstName: 'julio', }, { playerId: '297', firstName: 'sss', }, ];

y esto es lo que quiero lograr

 const res = [ { playerId: '294', firstName: 'MMM', status: false }, { playerId: '295', firstName: 'arkiv', status: false }, { playerId: '296', firstName: 'julio', status: true }, { playerId: '297', firstName: 'sss', status: true }, ];

Configuré un entorno para trabajar aquí: https://stackblitz.com/edit/react-lkcqcd?file=src%2FApp.js

¡gracias por la atención!

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede usar Array#some para verificar si la identificación del jugador está en la matriz seleccionada.

 const all=[{playerId:'294',firstName:'MMM',},{playerId:'295',firstName:'arkiv',},{playerId:'296',firstName:'julio',},{playerId:'297',firstName:'sss',},],selected=[{playerId:'296',firstName:'julio',},{playerId:'297',firstName:'sss',},]; all.forEach(player => player.status = selected.some(x => x.playerId === player.playerId)); console.log(all);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede crear un conjunto de jugadores seleccionados y usar este conjunto puede agregar el campo de status .

 const all = [{ playerId: "294", firstName: "MMM" }, { playerId: "295", firstName: "arkiv" }, { playerId: "296", firstName: "julio" }, { playerId: "297", firstName: "sss" }], selected = [{ playerId: "296", firstName: "julio" }, { playerId: "297", firstName: "sss" }], selectedSet = new Set(selected.map((player) => player.playerId)), res = all.map((player) => ({ ...player, status: selectedSet.has(player.playerId) })); console.log(res);

También puede usar Array.prototype.find en lugar de crear un conjunto, pero esto no sería óptimo a menos que el tamaño de la matriz selected sea bastante pequeño.

 const all = [{ playerId: "294", firstName: "MMM" }, { playerId: "295", firstName: "arkiv" }, { playerId: "296", firstName: "julio" }, { playerId: "297", firstName: "sss" }], selected = [{ playerId: "296", firstName: "julio" }, { playerId: "297", firstName: "sss" }], res = all.map((player) => ({ ...player, status: !!selected.find((selPlayer) => selPlayer.playerId === player.playerId), })); console.log(res);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar Array#map y Array#includes como en la siguiente demostración:

 const all = [ { playerId: '294', firstName: 'MMM', }, { playerId: '295', firstName: 'arkiv', }, { playerId: '296', firstName: 'julio', }, { playerId: '297', firstName: 'sss', }, ], selected = [ { playerId: '296', firstName: 'julio', }, { playerId: '297', firstName: 'sss', }, ], output = all.map( player => ({ ...player, status:selected.map(({playerId}) => playerId) .includes(player.playerId) }) ); console.log( output );

about 4 years ago · Juan Pablo Isaza 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