Как работает код метода .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
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
У нас есть объект. Мы проверяем, есть ли в этом объекте ключ (a[e]) и если есть, инкрементируем значение (a[e] + 1), а если нет, то используем единицу. Полученное значение записываем в объект a[e] =.

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

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

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

Войти через центр авторизации
Похожие вопросы