@okonoshi

Объясните пожалуйста, как работает функция?

Добрый день.

Задача:
Сделайте набор «готовых к употреблению» фильтров:
Они должны использоваться таким образом:
arr.filter(inBetween(3,6)) – выбирает только значения между 3 и 6 (включительно).
arr.filter(inArray([1,2,3])) – выбирает только элементы, совпадающие с одним из элементов массива

Задачу я решить смог, но я немного в замешательстве.

function inBetween(a, b) {
    return function (item) {
      return item >= a && item <= b;
    }
  };
arr.filter(inBetween(3,6))

Почему отрабатывает именно так, если по документации a - перебираемый элемент, b -индекс.
Как движок понял, что элемент нужно подставлять во вложенной функции?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
наверное, запутало то, что функция возвращает функцию.

inBetween(a, b) возвращает функцию, заточенную под конкретные a и b.
И уже эта свежесозданная функция используется в качестве фильтра для arr.filter().

На вход возвёрнутой функции и будет попадать (item, index)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы