⊗jsPrPCTS 26 of 62 menu

Totale generale nel calcolatore di prodotti su JavaScript

Adesso facciamo in modo che sotto la tabella venga visualizzato il totale generale degli acquisti. Ci sono delle sfumature.

Se si riflette sulla situazione, diventa chiaro che il totale dovrebbe essere rettificato non solo all'aggiunta di un nuovo acquisto, ma anche alla cancellazione e alla modifica.

In tal caso proporrei di creare una funzione, chiamiamola recountTotal, che eseguirà un ricalcolo completo del totale. Cioè, scorrerà con un ciclo tutti gli acquisti e sommerà il contenuto della loro colonna cost.

Avere una tale funzione ci permetterà di chiamarla in qualsiasi punto in cui sono previste modifiche al totale generale. Certo, non è del tutto ottimale ricalcolare il totale generale ogni volta. Tuttavia, otterremo una semplificazione significativa del codice.

Utilizziamo la funzione prevista durante la creazione di un nuovo acquisto:

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, 'rimuovi', 'remove'); table.appendChild(tr); recountTotal(); // ricalcoliamo il totale generale });

Ecco la bozza della funzione descritta:

function recountTotal() { let costs = table.querySelectorAll('.cost'); if (costs) { // troviamo la somma e la scriviamo in #total } }

Implementate la funzione recountTotal che ho descritto.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta