Loading...
IvaYorgova avatar IvaYorgova 17 Точки

JS Advanced Exam Preparation - 02. Movie

Здравейте колеги,

няколко пъти сравнявах кода ми с решението на лектора

и не мога да разбера какво пропускам и защо взимам само 88/100.

Някой може ли да помогне?

Благодаря!

Ива

Ето го кода:

class Movie {

    constructor(name, price) {

        this.movieName = name;

        this.ticketPrice = Number(price);

        this.screenings = [];

 

        this._totalProfit = 0;

        this._totalSoldTickets = 0;

    }

 

    newScreening(date, hall, description) {

        if (this.screenings.some(s => s.date == date && s.hall == hall)) {

            throw new Error(`Sorry, ${hall} hall is not available on ${date}`);

        }

        this.screenings.push({ date, hall, description });

        return `New screening of ${this.movieName} is added.`;

    }

 

    endScreening(date, hall, soldTickets) {

        let screening = this.screenings.find(s => s.date == date && s.hall == hall);

        if (screening == undefined) {

            throw new Error(`Sorry, there is no such screening for ${this.movieName} movie.`);

        }

        let index = this.screenings.indexOf(screening);

        this.screenings.splice(index, 1);

 

        let currentProfit = soldTickets * this.ticketPrice;

        this._totalProfit += currentProfit;

        this._totalSoldTickets += soldTickets;

 

        return `${this.movieName} movie screening on ${date} in ${hall} hall has ended. Screening profit: ${currentProfit}`;

    }

 

    toString() {

        let result = [];

        result.push(`${this.movieName} full information:`);

        result.push(`Total profit: ${this._totalProfit.toFixed(0)}$`);

        result.push(`Sold Tickets: ${this._totalSoldTickets}`);

        if (this.screenings.length == 0) {

            result.push("No more screenings!");

        }

        result.push("Remaining film screenings:");

        this.screenings.sort((a, b) => a.hall.localeCompare(b.hall))

            .forEach(s => result.push(`${s.hall} - ${s.date} - ${s.description}`));

 

        return result.join('\n');

    }

}

 

Тагове:
0
JavaScript Advanced
Axiomatik avatar Axiomatik 2422 Точки
        if (this.screenings.length == 0) {
            result.push("No more screenings!");
        } else {
            result.push("Remaining film screenings:");
            this.screenings.sort((a, b) => a.hall.localeCompare(b.hall))
                .forEach(s => result.push(`${s.hall} - ${s.date} - ${s.description}`));
        }

;-)

0
IvaYorgova avatar IvaYorgova 17 Точки

Много благодаря!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.