2
respostas

[Bug] function atualizaEstatisticas

TypeError: Cannot read properties of undefined (reading 'forca') Linha 41, 57 e 58 Meu Código:

const controle = document.querySelectorAll("[data-controle]");
const estatiticas = document.querySelectorAll("[data-estatistica]");

const pecas = {
  bracos: {
    forca: 29,
    poder: 35,
    energia: -21,
    velocidade: -5,
  },

  blindagem: {
    forca: 41,
    poder: 20,
    energia: 0,
    velocidade: -20,
  },
  nucleos: {
    forca: 0,
    poder: 7,
    energia: 48,
    velocidade: -24,
  },
  pernas: {
    forca: 27,
    poder: 21,
    energia: -32,
    velocidade: 42,
  },
  foguetes: {
    forca: 0,
    poder: 28,
    energia: 0,
    velocidade: -2,
  },
};

controle.forEach((elemento) => {
  elemento.addEventListener("click", (evento) => {
    manipulacaoDados(evento.target.dataset.controle, evento.target.parentNode);
    atualizaEstatisticas(evento.target.dataset.peca);
  });
});

function manipulacaoDados(operacao, controle) {
  const peca = controle.querySelector("[data-contador]");

  if (operacao === "-") {
    peca.value = parseInt(peca.value) - 1;
  } else {
    peca.value = parseInt(peca.value) + 1;
  }
}

function atualizaEstatisticas(peca) {

  estatiticas.forEach((elemento) => {
      elemento.textContent = parseInt(elemento.textContent) + pecas[peca][elemento.dataset.estatistica]
  });
}
2 respostas

As chaves dos objetos dentro do objeto pecas, tem que estar entre aspas. Por exemplo: const pecas = { "bracos": { "forca": 29, "poder": 35, "energia": -21, "velocidade": -5 },

"blindagem": {
    "forca": 41,
    "poder": 20,
    "energia": 0,
    "velocidade": -20
},

"nucleos":{
    "forca": 0,
    "poder": 7,
    "energia": 48,
    "velocidade": -24
},

"pernas":{
    "forca": 27,
    "poder": 21,
    "energia": -32,
    "velocidade": 42
},

"foguetes":{
    "forca": 0,
    "poder": 28,
    "energia": 0,
    "velocidade": -2
}

}

ainda continua dando o mesmo erro!