Loading...
nzzgeorgi avatar nzzgeorgi 14 Точки

[Exercises] JS advanced => JS classes => 08. Kitchen || проблем

https://judge.softuni.bg/Contests/Practice/Index/1534#7

https://pastebin.com/yjYMC0vu

Здравейте. Някой може ли да ми помогне с кода ми и да ми каже защо два от тестовете не минават. Проверил съм всички изходи и грешките са при следните методи:

1: addToMenu()  - в случаите когато има поне 1 рецепта в менюто

2:  showTheMenu() - пак в случаите когато има поне 1 рецепта в менюто.

 

При тестовете ми във VScode изходите ми изглеждат идентични с тези, които се искат в условието на задачата, но въпреки това Judge изглежда не ги приема.

 

Тагове:
0
JavaScript Advanced
willystyle avatar willystyle 2472 Точки
Best Answer

Здравей, едната грешка (тест 9) е в showTheMenu() , когато връщаш резултата правиш join s \n, но на последния ред нямаш \n, когато гледаш с console,log не го забелязваш, защото той прави нов ред, но judge явно го търси.

ред 43 else {return toPrint.join('\n') + '\n'} // // TEST 9 - pass

може би явно това имат впредвид с "At the end trim the result!", което не ми звучи логично, но.. на пишещия условието да.

Така, сега относно втората грешка, която отново не е при теб :) но явно се иска точно определена структура за this.menu[meal] и не може да ползваш това което ти правиш с this.menu[meal] = [neededIngs, +price] а:

this.menu[meal] = {products: neededIngs, price: +price}

т.е. искат да е обект, и то точно да има ключ products, което явно се проверява в някой юнит тест, като това никъде не е упоменато в условието на задачата.

Съответно трябва да замениш this.menu[meal][0] с this.menu[meal].products

и this.menu[meal][1] с this.menu[meal].price

https://pastebin.com/LefLUqFN

P.S. Досега не съм срещал толкова завоалирано условие на задача.

 

 

 

0
17/03/2019 11:56:46
nzzgeorgi avatar nzzgeorgi 14 Точки

Благодаря! Мина ми през ума това да е грешката, но понеже в условието пишеше нещо, че менюто трябва да се tirm-не, мислих, че не трябва да се слага този последен '\n' и така и не го пробвах.

Edit: Благодаря и за обяснението на 2-та грешка! Доста неприятно е като има такова разминаване в условието и в тестовете, и особено когато не може да се провери какво точно иска judge...

2
17/03/2019 22:49:20
Dokka avatar Dokka 1 Точки

Здравейте,

Понеже и аз се сблъсках с тази приятна задача. Искам да направя допълнение към TEST 6: явно judge не само иска да да имаш пропърти с име "products", но и стойността му да е масив.

Пример: 

1) this.menu[meal] = { price: price, products: products };

--- тест 6 минава;

 

2) this.menu[meal] = { price: price, products: {} };

for (let i = 0; i < products.length; i++) {

let [name, quantity] = products[i].split(" ");

this.menu[meal].products[name] = +quantity;

 }

--- тест 6 гърми

 

0
mr.ivanov avatar mr.ivanov 18 Точки

Аз я решавах около 2-3 часа и почти нищо не работи, а локално си минава. Има ли някой на който му се занимава?

Ако на изпита има подобна май ще се проваля. Нещо не се справям с класовете в JS. При мен работи а в Judge дава едвам 20 точки. Ще ми се да можех да видя тестовете така щях да открия грешките.

https://pastebin.com/yFSzRQ0J

edit : Открих една огромна грешка която ме озадачаваше. Аз умножавах цената по количеството а не трябваше.

Вече дава 60 точки, но все още нещо липсва.

https://pastebin.com/ZQpJ48nc

 
0
17/10/2019 22:07:00
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

https://pastebin.com/LyFXsxmP ето ви линка направо. Че не ми се обеснява там има и проблеми с това какво е описанието  на проблема и какво очаква judge но като цяло е straightforward  както всички класове в js  те са доста елементарни все едно са речник.

0
mr.ivanov avatar mr.ivanov 18 Точки

Ок мерси, може да са елементарни ако идваш от OOP език, но ако досега си бил само на JS e малко по-трудно, особено тези getter-и и setter-и не мога да ги разбера кога и защо се използват

0
18/10/2019 14:27:34
willystyle avatar willystyle 2472 Точки

И аз все още не съм съвсем наясно, особено с backing prefix _, а да не говорим, че в новия ES7 са вкарали и # за private properties, засега най-много ми се изясняват от https://javascript.info/class

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