2016-08-27 2 views
5

Я пытаюсь выяснить способ условного выхода из итерации при использовании функции reduce JavaScript.При использовании сокращения JavaScript, как пропустить итерацию?

Учитывая следующий код суммирует массив целых чисел и возвращает число 10:

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) { 
    return previousValue + currentValue; 
}); 

Как я могу сделать что-то вроде этого:

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) { 
    if(currentValue === "WHATEVER") { 
    // SKIP or NEXT -- don't include it in the sum 
    } 
    return previousValue + currentValue; 
}); 
+1

Рассмотрите также фильтрацию значений WHATEVER перед вызовом 'reduce'. –

ответ

15

Вы можете просто вернуть PreviousValue

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) { 
    if(currentValue === "WHATEVER") { 
    return previousValue; 
    } 
    return previousValue + currentValue; 
}); 
Смежные вопросы