Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

284
Visualizações
Cuando hago clic en el botón, el valor de ese botón debe sumar para sumar

Estaba tratando de codificar un sistema similar a POS como un pequeño proyecto para aprender. Así que actualmente tengo dos botones "cola" y "fanta". Los precios de esas bebidas están en un objeto. Tan pronto como hago clic en un botón, el precio debe agregarse a la suma. Bueno, lo que el código está haciendo actualmente es sumar los precios del mismo producto. Entonces, si hago clic tres veces seguidas en "cola", que tiene un precio de 3, obtengo 9 como suma. Hasta aquí todo bien, pero tan pronto como le doy a fanta, que tiene un precio de 2, obtengo una suma de 2. Pero cuando sigo con el botón de cola, sigue en 12 y así sucesivamente.

Aquí está el código:

 const btnChoose = document.querySelectorAll(".btn"); const drinks= { cola: 4, fanta: 3, }; for (let i = 0; i < btnChoose.length; i++) { let sum = null; btnChoose[i].addEventListener("click", function () { let price = drinks[this.id]; sum += price; console.log(typeof sum, sum); }); }

y aquí está el HTML:

 <!DOCTYPE html> <html> <head> <title>POS</title> </head> <body> <button class="btn" id="cola">Cola</button> <button class="btn" id="fanta">Fanta</button> <script> .... </script> </body> </html>
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Su declaración let sum=null crea una variable de alcance local separada cada paso a través del bucle for . Simplemente mueva la declaración fuera del bucle for para tener solo una variable de suma.

 let sum=null; for (let i = 0; i < btnChoose.length; i++) {

violín aquí: https://jsfiddle.net/cLrao8fu/

about 4 years ago · Juan Pablo Isaza Relatório

0

Sum es un producto inteligente porque ha declarado la variable sum dentro del bucle. Si lo mueve fuera del ciclo como se muestra a continuación, debería obtener una suma que incorpore la suma de todos los valores del producto.

 let sum = 0; for (let i = 0; i < btnChoose.length; i++) { let price = 0; btnChoose[i].addEventListener("click", function () { price = drinks[this.id]; sum += price; console.log(typeof sum, sum); }); }
about 4 years ago · Juan Pablo Isaza Relatório

0

es porque está definiendo sum en el bucle, defínalo fuera del bucle:

 const btnChoose = document.querySelectorAll(".btn"); const drinks= { cola: 4, fanta: 3, }; let sum = null; for (let i = 0; i < btnChoose.length; i++) { btnChoose[i].addEventListener("click", function () { let price = drinks[this.id]; sum += price; console.log(typeof sum, sum); }); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda