Чему равен параметр x в функции?

Вообще не понимаю чему равен параметр x на этих двух строчках:return function(x) и
arr.includes(x)
function inArray(arr) {
  return function(x) {
    return arr.includes(x);
  };
}

let arr = [1, 2, 3, 4, 5, 6, 7];
alert( arr.filter(inArray([1, 2, 10])) ); // 1,2


Объясните, пожалуйста.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
трюк в том, что функция inArray() возвращает ... ещё одну функцию, которую только что создала при вызове:
function inArray(arr) {
  const result = function(x) {
    // внутри этой функции будет ещё и доступен
    // arr, с которым вызвали inArray()
    return arr.includes(x);
  };

  return result;
}
Т.е. вызов inArray() с каким-то массивом возвращает всего лишь ещё одну функцию, которая принимает любой аргумент, но ещё и «запомнила» конкретный arr, с которым её создали.

В вашем примере создаётся функция с массивом: const myFilter = inArray([1, 2, 10]);это свежесозданная функция, которая для любого аргумента возвращает true/false — есть ли это же значение в массиве [1, 2, 10]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы