⊗jsPrPCTS 26 of 62 menu

Somme totale dans le calculateur de produits en JavaScript

Faisons en sorte maintenant que le montant total des achats s'affiche sous le tableau. Il y a des nuances.

Si on y réfléchit, il devient clair que le total doit être ajusté non seulement lors de l'ajout d'un nouvel achat, mais aussi lors de la suppression et de la modification.

Je proposerais dans ce cas de créer une fonction, appelons-la recountTotal, qui effectuera un recalcul complet du total. C'est-à-dire qu'elle parcourra en boucle tous les achats et additionnera le contenu de leur colonne cost.

Avec une telle fonction, nous pourrons l'appeler à tout endroit où des modifications du total sont envisagées. Bien sûr, ce n'est pas tout à fait optimal de recalculer le total à chaque fois. Mais nous obtiendrons une simplification substantielle du code.

Utilisons la fonction envisagée lors de la création d'un nouvel achat :

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, 'supprimer', 'remove'); table.appendChild(tr); recountTotal(); // recalculons le total });

Voici l'ébauche de la fonction décrite :

function recountTotal() { let costs = table.querySelectorAll('.cost'); if (costs) { // trouvons la somme et écrivons-la dans #total } }

Implémentez la fonction recountTotal que j'ai décrite.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser