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

Проблем с 02. Armies от Associative Arrays - More Exercises

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

Ако някой може да удари едно рамо, благодаря предварително!

 

Моето решение - https://pastebin.com/HybBABSe

Задачката - https://judge.softuni.org/Contests/Practice/Index/1305#1

 

Write a function that stores information about an army leader and his armies. The input will be an array of strings. The strings can be in some of the following formats:
"{leader} arrives" – add the leader (no army)

"{leader}: {army name}, {army count}" – add the army with its count to the leader (if he exists)
"{army name} + {army count}" – if the army exists somewhere add the count
"{leader} defeated" – delete the leader and his army (if he exists)

When finished reading the input sort the leaders by total army count in descending. Then each army should be sorted by count in descending.

Output

Print in the following format:
"{leader one name}: {total army count}
>>> {armyOne name} - {army count}
>>> {armyTwo name} - {army count}
 …
{leader two name}: {total army count}
…"

Constrains

  • The new leaders will always be unique
  • When adding a new army to the leader, the army will be unique

Example

Input

Output

['Rick Burr arrives', 'Fergus: Wexamp, 30245', 'Rick Burr: Juard, 50000', 'Findlay arrives', 'Findlay: Britox, 34540', 'Wexamp + 6000', 'Juard + 1350', 'Britox + 4500', 'Porter arrives', 'Porter: Legion, 55000', 'Legion + 302', 'Rick Burr defeated', 'Porter: Retix, 3205']

Porter: 58507

>>> Legion - 55302

>>> Retix - 3205

Findlay: 39040

>>> Britox - 39040

['Rick Burr arrives', 'Findlay arrives', 'Rick Burr: Juard, 1500', 'Wexamp arrives', 'Findlay: Wexamp, 34540', 'Wexamp + 340', 'Wexamp: Britox, 1155', 'Wexamp: Juard, 43423']

Wexamp: 44578

>>> Juard - 43423

>>> Britox - 1155

Findlay: 34880

>>> Wexamp - 34880

Rick Burr: 1500

>>> Juard - 1500

0
JavaScript Fundamentals 07/05/2022 19:45:05
Tzigoriyn avatar Tzigoriyn 44 Точки

Много е трудно да се ориентира човек в кода ти като примир:

 else if (el.includes(':')) { - тук контекста на el ти е част от инпута т.е.стринг

            let [leader, army, count] = el.split(/\W /g);

            count = Number(count);

            armies.forEach(el => { - тук обаче el ти е част от масива който създаваш

Това е доста объркващо.

Грешката най вероятно ти е в грешен подход, а именно ->

  • armies.forEach(el => {

        // Check if leader has no army

        if (!el.total) {

            el.total = 0

        };

        console.log(`${el['leader']}: ${el['total']}`);

        delete el.leader;

        delete el.total;

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

JUDGE проверява за тях а ги няма. На края оставаш с един масив от обекти без лидери и още един подреден масив от армии.

1
stsp93 avatar stsp93 1 Точки

Промених подхода , така че да се записват данните в обект държащ {лидер1:{армии}, лидер2:{армии} ... лидер(n):{армии}} и се получи, мисля че проблема беше при четенето на данните.

Мерси много и съжалявам за разбъркания код.

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