Как узнать общее количество всех созданных объектов? - PullRequest
0 голосов
/ 01 октября 2018

Я хочу найти общую сумму всех созданных объектов через класс «Гамбургер», чтобы затем найти просчет среднего количества «гамбургеров» (сумма всех заказов, деленная на их количество).Используя метод «CalculatePrice», я получаю полную цену бургера.Как найти общую сумму всех гамбургеров, которую можно разделить на их количество и получить среднюю стоимость всех «заказов» Подскажите, как правильно найти общую стоимость всех созданных гамбургеров?

сlass Hamburger {

    constructor(size, ...stuffing) {
        this.size = size;
        this.stuffing = stuffing;
        this.toppingArr = [];
        this.counter = ++Hamburger.counter;
    }

    addTooping(toop) {
        return this.toppingArr.push(toop)
    }

    getTooping() {
        const toppName = this.toppingArr.map(el => el.name);
        return `Toopping: ${toppName}`
    }

    getSize() {
        return `${this.size.name} burger\n`
    }

    getStuffing() {
        const stuffName = this.stuffing.map(el => el.name);
        return `Stuffing: ${stuffName}\n`
    }

    calculatePrice() {
        const stuffingCost = this.stuffing.map(el => el.price).reduce((p, c) => p + c);
        const toppingCost = this.toppingArr.map(el => el.price).reduce((p, c) => p + c);
        const allCost = this.size.price + stuffingCost + toppingCost;
        return `Total burger price: ${allCost}`
    }

    calculateCalories() {
        const stuffingKcal = this.stuffing.map(el => el.kcal).reduce((p, c) => p + c);
        const toppingKcal = this.toppingArr.map(el => el.kcal).reduce((p, c) => p + c);
        const allKcal = this.size.kcal + stuffingKcal + toppingKcal;
        return `Total burger calories: ${allKcal}`
    }

}
Hamburger.counter = 0;

Hamburger.small = {
    name: 'small',
    price: 10,
    kcal: 200
}
Hamburger.cheese = {
    name: 'cheese',
    price: 4,
    kcal: 10
}
Hamburger.meet = {
    name: ' meet',
    price: 40,
    kcal: 103
}
Hamburger.mayo = {
    name: 'mayo',
    price: 4,
    kcal: 10
}
Hamburger.oil = {
    name: ' oil',
    price: 1,
    kcal: 2
}


let humb1 = new Hamburger(Hamburger.small, Hamburger.cheese, Hamburger.meet);
console.log(humb1.getSize());
console.log(humb1.getStuffing());
humb1.addTooping(Hamburger.mayo);
humb1.addTooping(Hamburger.oil);
console.log(humb1.getTooping());
console.log(humb1.calculatePrice());
console.log(humb1.calculateCalories());
console.log(humb1);
 let humb2 = new Hamburger(Hamburger.small, Hamburger.cheese) 

1 Ответ

0 голосов
/ 01 октября 2018

Если вы хотите сложить сумму из нескольких Hamburger элементов, у вас есть довольно много вариантов.Исходя из вашего комментария, я думаю, что вы ищете что-то вроде этого:

let burgers = [];

// create all burgers
burgers.push(new Hamburger(..));
burgers.push(new Hamburger(..));
burgers.push(new Hamburger(..));
burgers.push(new Hamburger(..));

// sum
let sum = burgers.reduce((a,b) => a.calculatePrice() + b.calculatePrice(), 0);

// average
let avg = sum / Hamburger.counter;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...