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

145
Vistas
tener diferentes valores en las propiedades del mismo objeto en una matriz de objetos

por qué tengo un valor del mismo objeto en una matriz pero cuando lo selecciono así arr[0] encuentro en la consola diferentes valores

 class Player { constructor(x){ this.x = x } move(code){ if(code==="ArrowUp"){ this.x +=1; fn(); }; players[0] = player; } }; let players = []; let player = new Player(1); function fn() { console.log(player,players[0]) }
entonces, cuando agrego un evento, haga clic, por ejemplo, en el documento que, cuando suceda, la función del evento llamará a player.move (e.code) y pasará como argumento e.code // el valor de x del primer objeto en el impreso La matriz de jugadores es diferente de la x en el objeto jugador1 y jugadores[0]

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

0

¿Tu problema es que estás imprimiendo [] undefined ?

Reelaboré tu código para dar ese resultado:

 class Player { constructor(x){ this.x = x } move(code){ if(code==="ArrowUp"){ this.x +=1; fn(); }; players[0] = player; } }; let players = []; let player = new Player(1); player.move("ArrowUp"); function fn() { console.log(players,players[0]) }

Lo que sucede está dentro del player , el code es "ArrowUp" , activando el código dentro del if para ejecutar. Ese código incrementa player.x a 2 . En este momento, ningún código ha cambiado nada relacionado con players , la matriz, por lo que sigue siendo una matriz vacía [] . Este sigue siendo el caso cuando se llama a fn después de ese cambio a player . El primer valor impreso proviene de que players son una matriz vacía. Lo undefined proviene de indexar una matriz vacía en 0 (el primer elemento de la matriz) da indefinido cuando no hay ningún objeto allí. El resultado es [] undefined .

Luego, se ejecuta players[0] = player , colocando al player en la posición 0 de la matriz. Si ejecutamos fn en este punto, debería generar: [ Player { x: 2 } ] Player { x: 2 } . Obtendrá este comportamiento colocando una fn después de players[0] = player o colocándola después de player.move("ArrowUp"); .

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