Професионална програма
Loading...
Gdimitrov28 avatar Gdimitrov28 24 Точки

Задача 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 144 Точки
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 24 Точки

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

0
30/10/2019 17:57:46