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

137
Vistas
¿Cómo puedo conservar las referencias de la matriz al cargar una matriz similar pero nueva?

He estado jugueteando con javascript para hacer un juego, y al intentar crear un mecanismo de guardar/cargar, me encontré con algunos problemas.

Esto podría provenir de cómo se configura el juego, pero principalmente voy a describir los datos del juego que se guardan y cargan en un ejemplo abstracto.

 let farm = { amount: 0 } let hut = { amount: 0 } let gameData = { buildingArray: [farm, hut] } function saveGame() { let saveData = gameData localStorage.setItem(localStorageName, JSON.stringify(saveData)) console.log("Data Saved") } function loadGame() { if (localStorage.getItem(localStorageName)) { loadData = JSON.parse(localStorage.getItem(localStorageName)) gameData = loadData console.log("Data Loaded") } }

Para guardar y cargar esto, simplemente registro el JSON de gameData en el almacenamiento local y luego lo analizo para cargarlo.

El principal problema que tengo con esto es cuando se carga gameData, por ejemplo, con granjas y cabañas de cantidad 1. El objeto gameData reflejará esto, pero los objetos individuales de granja y cabaña seguirán mostrando una cantidad de 0.

En mi proyecto, declaro todas estas variables por separado y luego las asocio juntas en gameData para facilitar la lectura, y tal vez esa implementación sea imprudente, por lo que si hay una manera de solucionar este problema y reorganizar, también sería apreciada.

La razón por la que esto me confunde es porque hasta que se cargue el juego, estos objetos a los que se hace referencia se actualizarán si, por ejemplo, se compra una granja. Después de cargar, parece que las referencias almacenadas en la matriz están desacopladas y me preguntaba: ¿hay alguna forma de solucionar esto?

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

0

En su función loadData, podría agregar una asignación a farm y hut para que se sincronicen con los datos cargados:

 gameData = loadData; [farm, hut] = gameData.buildingArray; // <--- add this

Sin embargo, le sugiero que use un enfoque más OOP, evitando tales variables globales:

 class Game { static localStorageName = "myGame"; constructor() { this.farm = 0; this.hut = 0; } save() { localStorage.setItem(Game.localStorageName, JSON.stringify(this)) console.log("Data Saved"); } load() { let loadData = localStorage.getItem(Game.localStorageName); if (loadData) { Object.assign(this, JSON.parse(loadData)); console.log("Data Loaded") } else { console.log("No data to load") } } } // Example run let game = new Game(); game.hut++; game.save(); game.hut = 0; game.load(); console.log(game.hut); // 1
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