Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Lyubosumaz avatar Lyubosumaz 5 Точки

08. Kitchen от Exercise: JS Classes

Това ми е кода: https://pastebin.com/067BY3ah дава ми 53/100 в judge. Условието на задачата е объркващо "just print the message:"??, за целия метод "makeTheOrder()" няма sample, може би конструктора съм объркал щеше ли да ми е по-лесно, ако бях направил this.productsInStock = { }; и this.actionsHistory = { };. Дайте идея как да си оправя кода.

Условие: https://judge.softuni.bg/Contests/Practice/Index/1534#0

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

Ето ти едно решение, където даже има анализ кои тестове имат проблеми.

https://pastebin.com/8WSfMtRB

При теб, само на пръв поглед ред 48 какво е this.this.numberOfMeals в този клас нямаш такова пропърти (или гетър), и т.н. разгледай кода

1
Lyubosumaz avatar Lyubosumaz 5 Точки

Добре. Еми трябваше ми counter на бройката и го направих така. Мерси много, утре ще довърша задачата, че сега стана много късно и съм вече outburn-ал, ще дам линк. 

1
Lyubosumaz avatar Lyubosumaz 5 Точки

Добре може би те излъгах, аз трябва твърде много да променя решението си, то ще стане все едно съм я преписал. Само ще я коментирам.

Искам да питам в конструктора този запис this.budget = +budget; ще направи this.budget typeof number? Много яко, аз това не го знаех. Аз трябва ли да ползвам Number(this.budget)? Също може да е грашка и това, че this.productsInStock = []; при мен е array. Твърде сложно става, правят се много фор лупове за проверки и тн, видях го докато я пишех задачата ама бях написал доста код и продължих.

На loadProducts е странен ретътна. Кофти ако let messageLog = [] е задължителен. Гледам, че и новия синтаксис на destructuring-а не го кефи judge let [product, quantity, price] = entry.split(' ').

this.menu[meal] е с друга структура. Аз съм this.menu[meal]array, ти ползваш this.menu[meal]object. Object.keys(this.menu).length e готин начин да се вземе дължина.

makeTheOrder колко лесно е направен, леле аз какво мазане правя. Също имам правописна грашка в ретърна то е (${meal}) аз съм написал ${meal} без скобите. Вече дава 73/100. Ох, запалих се, е сега ще я напиша наново.

0
05/07/2019 13:29:55
Lyubosumaz avatar Lyubosumaz 5 Точки

https://pastebin.com/cCgEksVK judge дава 93/100. Нямам идея какво може да е. Вероятно нещо в loadProducts(). Спирам с тази задача.

if (this.productsInStock.hasOwnProperty(productName)) е същото като if (this.productsInStock[productName]) ?

И защо така взимаш стойностите: let price = +entry.pop(), let quantity = +entry.pop(), let product = entry.join(' ') за оставащия с елемент .join(' ') някакво ми е странно. Последния елемент може да се вземе и със .shift() и с [0] и с .pop(). Това за бързодействие ли е?

0
05/07/2019 14:37:20
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

+ jsstring го прави число coerse-ва го . Тжва е краткия начин. По принцип конттрукторите в js на обектите се ползавт рядко това са скъпи операции.products instock като обект е много по лесно името ти е продукта value-то дали имаш в наличност.

Масивите не можеи да ги обходиш с имена а по индекс такафче object.haspropery(name) e различно. А последното е въпрос на стил по-скоро.всеки пише по различен начин. А и така с индексите си малко уязвим ако нещо се промени. Или ако слез време си гледаи кода да се сетиш това защо е така.

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