Если добавить все натуральные числа меньше 1000, которые кратны 3 или 5.Подчеркивание .reduce() возвращает NaN?
var sum = _.reduce(_.range(1, 1000), function(x, n) {
if (n % 3 == 0 || n % 5 == 0) { return x+=n; }
}, 0);
Я ожидаю, что выход будет 233168
, но я получаю NaN
.
По какой-то причине sum
не принимает инициализированное значение 0
. Однако, если я предисловие это с var sum = 0;
, то он работает и возвращает правильный вывод 233168
Почему он не принимает инициализированное значение?
Что вы возвращаете, если число не кратно 3 или 5? – thefourtheye
Просто FYI, вы можете суммировать кратные в последовательном диапазоне без цикла. Это можно сделать только с помощью математики. –