Поиск границы массива, в которую попадает значение

Поиск границы массива, в которую попадает значение:

function reduce(search, pattern) {
    let cnt = pattern.length;
    for (i = 0; i < cnt; i++) {
        if ((typeof(pattern[i + 1]) == 'undefined') || (search >= pattern[i] && search < pattern[i + 1]) ) {
            return i;
        }
    }
}

//example:
let array = [0,320,380,480,600,800,1000];
reduce(390, array);

Например, переданное в функцию число 390 вернет индекс 2 (больше 380, но меньше 480).