stsp93 1 Точки

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

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

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

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

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}: {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
07/05/2022 19:45:05
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

};

delete el.total;

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

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

1
stsp93 1 Точки

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

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

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