Loading...
StefanVAndreev avatar StefanVAndreev 1 Точки

04. Game of Epicness (JS fundamentals exam, 11 Feb.)

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

Става въпрос за 4-та задача от изпита, които беше на 11 февруари (JS Fundamentals). Общо взето я докарах до 75 точки. Сигурен съм че програмата смята правилно при всякакви тестове, самият аз направих доста нелогични теста и те минаха идеално. Помислих си че грешката ми е в сортировката (няма какво друго да е) при принтирането на резултата, въпреки че по тестовете които пробрах всичко излизаше коректно. Един колега ми каза, че сортирането трябвало да го направя в обратен ред, а не по този посечен в условието. Вярно ли е?

Тагове:
0
JavaScript Fundamentals
Jeliozver avatar Jeliozver 356 Точки

Как така обратен?

Условието за сортирането на кралствата беше първо по брой победи във низходящ ред. (победи в цялото кралство или събрани победите на всички генерали в кралството). При равни победи в цялото кралство трябва да се сортират по общ брой загуби на кралството във възходящ ред. И при ново равенство по име на кралството по азбучен ред (a-z).

Като сортираш така вземаш кралството, което е най-отгоре и му принтираш името после генералите му ги сортираш по броя на останалите им армии в низходящ ред и принтираш и тях.

0
StefanVAndreev avatar StefanVAndreev 1 Точки

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

0
bMedarski avatar bMedarski 148 Точки

Зависи как сортираш и какво сортираш. Но да има вариант за да ти се получи верен резултат да сортираш на обратно.

0
kr056 avatar kr056 64 Точки

Сортировката от условието си е точна.

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

Ако искаш покажи си кода,да видим защо е 75/100.

0
t3dkich avatar t3dkich -1 Точки

ето я сортировката:
 

let sortedKingdoms = Object.keys(allKingdoms).sort((a,b) => {
    let wins = +allKingdoms[b]['allWins'] - +allKingdoms[a]['allWins']
    if (wins === 0) {
        let losses = +allKingdoms[a]['allLosses'] - +allKingdoms[b]['allLosses']
        if (losses === 0) return a.localeCompare(b)
        return losses
    }
    return wins
})
let sortedGenerals = Object.keys(allKingdoms[sortedKingdoms[0]]).sort((a,b) => {
    return allKingdoms[sortedKingdoms[0]][b]['army'] - allKingdoms[sortedKingdoms[0]][a]['army']
})

 

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