Задать вопрос

Как работает код метода .reduce?

"Код для подсчета количества символов в строке"
Кто-нибудь может объяснить по шагам как работает этот код? почему в условии мы делаем присваивание? Как в конечный массив записывается значение?
[...'hhtml'].reduce((a,e) => {
    a[e] = a[e] ? a[e] + 1 : 1;
    return a;
},{})

В итоге выведет:
{h: 2, t: 1, m: 1, l: 1}
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
У нас есть объект. Мы проверяем, есть ли в этом объекте ключ (a[e]) и если есть, инкрементируем значение (a[e] + 1), а если нет, то используем единицу. Полученное значение записываем в объект a[e] =.

почему в условии мы делаем присваивание
Потому что метод reduce предназначен для "сборки" какого-то одного значения и эта сборка без присваивания невозможна.

Как в конечный массив записывается значение
Через присваивание выше и возврат объекта (а не массива) из функции.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 13:47
1800 руб./в час
18 дек. 2024, в 13:22
30000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект