array.filter()
требует функции.Если вы хотите предварительно связать некоторые параметры, вам понадобится функция, которая возвращает функцию.В этом случае функции inBetween
и inArray
должны возвращать функции.
Так должно быть:
let arr = [1, 2, 3, 4, 5, 6, 7];
function inBetween(min, max) {
return function(value) {
// When this is called by array.filter(), it can use min and max.
return min <= value && value <= max
}
}
function inArray(array) {
return function(value) {
// When this is called by array.filter(), it can use array.
return array.includes(value)
}
}
console.log( arr.filter(inBetween(3, 6)) )
console.log( arr.filter(inArray([1, 2, 10])) )
В этом случае min
, max
и array
закрывают возвращаемую функцию, так что когда array.filter()
вызывает возвращенную функцию, она имеет доступк этим значениям.
Ваша функциональность inArray()
уже реализована встроенной array.includes()
.