Chupachar
@Chupachar
front-end dev

Почему при использовании метода reduce, при первом событии возвращает initialValue?

Всем привет, имеется данный код в котором я хочу посчитать сумму ключей объектов accommodation. Я написал классический шаблон скрипта который выполняет данную задачу:
https://jsfiddle.net/q6mnptrj/3/
В данном случае скрипт отрабатывает правильно.
У меня же в проекте по какой то причине в первый раз возвращает initialValue то есть 0, в не зависимости от того, каким является currentValue, например условно в map мы перебрали accommodation и получилось что next === 3:
.reduce((prev, next) => prev + 3, 0); то возвратится 0.

Может быть что проблема в том, что currentTariff это массив локального хранилища и данная проблема тянется отсюда?
Например вот я добавляю 2 раза карточку в корзину. В первый раз sum возвращает 0 хотя по идее должен возвращать 3, потому что currentValue === 3. Во второй раз уже срабатывает правильно.

вот код с проекта:

let accommodationSum = currentTariff
         .map((item) => item.acсommodation)
         .reduce((prev, next) => prev + next, 0);
         console.log("one cabin: ", accommodationForOneCabin);
         console.log("sum: ", accommodationSum);

6384b9c50e784814289832.png
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
imko
@imko
Senior Scratch Developer
Пустой массив? Если не будет ни одного элемента не будет и проходов, не добавится 3, вернется initial
[].reduce((prev, next) => prev + 3, 0)
//0
Ответ написан
Ваш ответ на вопрос

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

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