@tempfolder

Как реализовать метод вывода итоговой суммы покупок?

Практикуюсь в изучении js, на данном этапе в частности модули и замыкание.
Завис над решение задачи, осталось сделать метод подсчёта всех покупок.
код
const shopsModule = (function () {
    let balance = 1000;
    let beerCount = 100;
    let beerPrice = 30;
    let vineCount = 50;
    let vinePrice = 80;
    let pepsiCount = 80;
    let pepsiPrice = 10;
    let beerBeforeBuy = beerCount;
    let vineBeforeBuy = vineCount;
    let pepsiBeforeBuy = pepsiCount;

    function checkBalance() {
        return balance;
    }

    function checkBeer() {
        return beerCount;
    }

    function checkVine() {
        return vineCount;
    }

    function checkPepsi() {
        return pepsiCount;
    }

    function sellBeer(count) {
        if (count > beerCount) {
            alert(`Вибачте, але на складі залишилось ${beerCount} позицій пива.`);
        } else {
            beerCount -= count;
            balance += count * beerPrice;
            return true;
        }
    }

    function sellVine(count) {
        if (count > vineCount) {
            alert(`Вибачте, але на складі залишилось ${vineCount} позицій вина.`);
        } else {
            vineCount -= count;
            balance += count * vinePrice;
            return true;
        }
    }

    function sellPepsi(count) {
        if (count > pepsiCount) {
            alert(`Вибачте, але на складі залишилось ${pepsiCount} позицій пепсі.`);
        } else {
            pepsiCount -= count;
            balance += count * pepsiPrice;
            return true;
        }
    }

    function sumProduct() {
        return ((beerBeforeBuy - beerCount) * beerPrice) + ((vineBeforeBuy - vineCount) * vinePrice) + ((pepsiBeforeBuy - pepsiCount) * pepsiPrice)
    }
    return {
        balance: checkBalance,
        beer: checkBeer,
        vine: checkVine,
        pepsi: checkPepsi,
        buyBeer: sellBeer,
        buyVine: sellVine,
        buyPepsi: sellPepsi,
        sumOfAll: sumProduct
    }
})();

shopsModule.buyBeer(10);
console.log(shopsModule.sumOfAll());
shopsModule.buyBeer(10);
console.log(shopsModule.sumOfAll());

Но так, чтобы допустим в html, при нажатии на кнопку купить, в отдельном поле печатался чек с общей суммой покупки, а значение бралось с метода shopsModule.sumOfAll(). У меня же оно суммируется с предыдущей, подскажите, пожалуйста, как каждый раз при нажатии выводить общую сумму, за один раз не учитывая предыдущие.
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Может, добавить массив транзакций? Туда при каждой покупке пихать "чек": что куплено и сколько.
Когда требуется, вытаскивать последний. Ну, или все.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы