Видимо такое
const arr = [1, 2, 3, 4, 5, 6];
const result = arr.filter(getBetween(2, 5));
console.log("result: ", result); // [3, 4]
function getBetween(min, max){
return ( value => (value > min) && (value < max) );
}
В данной задаче getBetween
должно возвращать функцию сравнения, которая будет использована для фильтрации. Запись .. => ..
это краткое определение анонимной функции. То есть x => y
эквивалентно
function (x) { return y; }
Применительно к данному сниппету вернем функцию для фильтрации:
return function (value){
return (value > min) && (value > max)
};
При этом передачу внутрь аргументов min/max называют "замыканием" функции на внешнюю область видимости.
в целом весь алгоритм будет представлять из себя примерно такую итоговую последовательность шагов:
let filterFunction = getBetween(2,5); // 2 -> min, 5 -> max
let result = [];
for(i = 0; i < arr.length; i++) {
let check = filterFunction(arr[i]); // arr[i] -> value
if (check) {
result.push(arr[i]);
}
}