@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(). У меня же оно суммируется с предыдущей, подскажите, пожалуйста, как каждый раз при нажатии выводить общую сумму, за один раз не учитывая предыдущие.
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Может, добавить массив транзакций? Туда при каждой покупке пихать "чек": что куплено и сколько.
Когда требуется, вытаскивать последний. Ну, или все.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Минск
от 2 800 до 3 300 $
04 мар. 2021, в 16:10
10000 руб./за проект
04 мар. 2021, в 15:49
500 руб./в час
04 мар. 2021, в 15:42
8000 руб./за проект