Пошук уроків, статей та іншого контенту
Порахуйте, скільки разів кожне слово зустрічається в тексті.
Напишіть функцію solve(text), яка приймає рядок тексту і повертає об'єкт, де кожен ключ — слово (у нижньому регістрі), а значення — кількість його входжень у тексті. Слова розділені одним чи кількома пробілами.
Приклади
Вхід: "the quick brown fox the lazy dog the"
Вихід: { the: 3, quick: 1, brown: 1, fox: 1, lazy: 1, dog: 1 }
Вхід: ""
Вихід: {}
Вхід: "Hello hello HELLO"
Вихід: { hello: 3 }
без урахування регістру
Ваше рішення
Підказки
text.toLowerCase().split(/\s+/) розбиває текст на слова, приводячи їх до нижнього регістру, і коректно обробляє кілька пробілів підряд.
filter(Boolean) прибирає порожні рядки, які могли б з'явитись при розбитті порожнього чи пробільного тексту.
function solve(text) {
const words = text.toLowerCase().split(/\s+/).filter(Boolean);
const result = {};
for (const word of words) {
result[word] = (result[word] ?? 0) + 1;
}
return result;
}Регулярний вираз /\s+/ розбиває текст на слова незалежно від кількості пробілів між ними; filter(Boolean) прибирає порожній рядок, що з'являється при розбитті порожнього тексту. Далі — звичайний підрахунок входжень через об'єкт-акумулятор.