Celková suma v kalkulačke produktov v JavaScripte
Urobme teraz tak, aby sa pod tabuľkou zobrazovala celková suma nákupov. Sú tu nuansy.
Ak sa zamyslíme nad situáciou, bude jasné, že suma by sa mala upravovať nielen pri pridávaní nového nákupu, ale aj pri odstraňovaní a úprave.
V takom prípade by som navrhol vytvoriť nejakú
funkciu, nazvime ju recountTotal,
ktorá vykoná úplné prepočítanie
sumy. To znamená, že prejde cyklom cez
všetky nákupy a sčíta obsah ich
stĺpca cost.
S takouto funkciou ju môžeme volať na akomkoľvek mieste, kde sa predpokladajú nejaké zmeny celkovej sumy. Samozrejme, je to trochu nie optimálne vždy prepočítavať celkovú sumu. Na druhej strane získame výrazné zjednodušenie kódu.
Použime predpokladanú funkciu pri vytváraní nového nákupu:
add.addEventListener('click', function() {
let tr = document.createElement('tr');
createCell(tr, name.value, 'name');
createCell(tr, price.value, 'price');
createCell(tr, amount.value, 'amount');
createCell(tr, price.value * amount.value, 'cost');
createCell(tr, 'odstrániť', 'remove');
table.appendChild(tr);
recountTotal(); // prepočítame celkovú sumu
});
Tu je prípravok opísanej funkcie:
function recountTotal() {
let costs = table.querySelectorAll('.cost');
if (costs) {
// nájdeme sumu a zapíšeme ju do #total
}
}
Implementujte opísanú funkciu recountTotal.