Loading...
Gdimitrov28 avatar Gdimitrov28 23 Точки

Задача 05 - Inventory от JS Fundamentals - Objects and Classes Exercise

 Здравейте!

Ако някой може да погледне кода ми и да обясни къде греша, ще бъда много благодарен. Judge дава 40/100 и предполагам, че съм изтървал нещо от условието, тъй като програмата си и върви видимо нормално. Има нещо в условията, което подозирам, че е и моята грешка, а именно - "Create a function which creates a register for heroes, with their names, level, and items (if they have such). " Въпросът е, че не ми е много ясно как да ги подредя по нарастващи нива, ако един от героите няма зададено ниво. Може и другаде да бъркам... както и да е, всяко мнение е добре дошло.

 

Линк към задачата : https://judge.softuni.bg/Contests/Compete/Index/1322#4

Линк към решението : https://pastebin.com/WB12kwVC

 

Благодаря предварително :)

Тагове:
0
JavaScript Fundamentals
petrovmitko avatar petrovmitko 145 Точки
Best Answer

Здравей 

function solve(arr){

    let heros = []

    arr.map(x => x.split(' / '))

    .map(x => heros.push({name: x[0], level: +x[1], items: x[2].split(', ').sort((a, b) => a.localeCompare(b)).join(', ')}))

 

    heros.sort((a, b) => a.level - b.level)

    .map(x => console.log(`Hero: ${x.name}\nlevel => ${x.level}\nitems => ${x.items}`))

}

Това бих написъл аз като решение, копирай го и го сложи в VScode за да го разгледаш. Мап е нещо като for of цикъл. Минава през всеки елемент от масива. В твоето решение като грешка забелязах, че сортваш направо sort(), което не е правилно и дори да работи за тази задача, ще свикнеш и някъде ще ти изиграе лоша шега. Винаги сортвай с sort((a, b) => a.localeCompare(b)) за string и sort((a, b) => a - b) за numbers. Както видя в можеш да сотваш обекти с a.level - b.level. В един сорт можеш да сортираш и по поввече от еди кротерии като ги разделиш с || operator. Пример -   heros.sort((a, b) => a.level - b.level  || a.name.localeCompare(b.name)) -това няма общо със задачата, но може да не си го виждал, а ще ти е полезно. Иначе добре си тръгнал и най-вероятно грешката ти е в някой от сортовете.

0
Gdimitrov28 avatar Gdimitrov28 23 Точки

Благодаря!
Определено sort-а ми беше другото опасение в случая, тъй като не мислех, че има нужда от нещо повече от .sort()
Благодаря също така и за допълнителната информация, със сигурност ще ми влезе в употреба.

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