Из документации Lodash :
Перебирает элементы collection
и вызывает iteratee
для каждого элемента.iteratee
вызывается с тремя аргументами: (value, index|key, collection)
.Итеративные функции могут выйти из итерации раньше, явно возвращая false
.
Это означает, что вы можете просто сделать:
_.each( days, function( day, i ){
});
Таким образом, весь ваш код становится:
var days = [5, 15, 25];
var hours = [6, 8, 7];
var result = [];
_.each( days, function( day, i ){
if( days[i] < a && b < days[i+1] ){ // days[i] == day
result.push( hours[i] );
} else if( days[i] > a && days[i] < b ){
result.push( hours[i] );
if( i > 0 ){
result.push( hours[i-1] );
}
}
})
Вот jsFiddle для экспериментов.