Использование массива в качестве параметра функции в JavaScript

В Javascript у нас часто есть данные, хранящиеся в виде массивов, и функции, которые мы хотим вызвать. Иногда данные в массивах — это именно те данные, которые мы хотим передать в функцию. К счастью, в Javascript есть способы использовать массивы в качестве входных значений для функций. Давайте рассмотрим, как использовать массивы в качестве параметров функций.

Как использовать массивы в качестве параметров функции

Когда у нас есть функция, в которую мы хотим передать массив, самый простой способ сделать это будет выглядеть следующим образом:

let numbers = [ 1, 2, 3 ]
let myFunction = (x, y, z) => {
    return x + y + z;
}

// Returns 6
let getCalculation = myFunction(numbers[0], numbers[1], numbers[2]);
Войти в полноэкранный режим Выйти из полноэкранного режима

Конечно, это может быть довольно раздражающим, особенно при работе с функциями, которые имеют очень длинные списки свойств. Поэтому Javascript предоставляет нам два способа использования массивов в качестве параметров функций — apply() и оператор spread.

Передача массивов в функции с помощью оператора spread

Современный и самый простой способ передать массив в функцию — это использовать оператор spread. Оператор spread (...) просто добавляется перед массивом. Используя наш предыдущий пример, это выглядит следующим образом:

let numbers = [ 1, 2, 3 ]
let myFunction = (x, y, z) => {
    return x + y + z;
}

// Returns 6
let getCalculation = myFunction(...numbers);
Войти в полноэкранный режим Выйти из полноэкранного режима

Мы также можем напрямую добавить массив в функцию, без использования переменной. Например:

let myFunction = (x, y, z) => {
    return x + y + z;
}

// Returns 6
let getCalculation = myFunction(...[ 1, 2, 3 ]);
Войти в полноэкранный режим Выйти из полноэкранного режима

Если вы хотите узнать обо всех возможностях оператора spread, ознакомьтесь с моим руководством по этому вопросу здесь.

Передача массивов в функции с помощью apply()

Другой способ сделать это — использовать apply(). Если вы не знакомы с основным вариантом использования apply(), ознакомьтесь с моим полным руководством по этому объекту Javascript здесь.

В конечном итоге, apply() позволяет нам взять функцию и передать в нее массив. Первый атрибут apply() фактически ссылается на объект this, который мы хотим использовать в функции. Второй аргумент — это массив всех параметров для этой функции. Это означает, что вы можете определить структуру this, а также передать массив в саму функцию.

Это, очевидно, имеет некоторые специфические преимущества по сравнению с оператором spread (...), поэтому он может быть более подходящим в зависимости от того, чего вы хотите достичь. Используя наш предыдущий пример, мы можем передать массив в нашу функцию следующим образом:

let myFunction = (x, y, z) => {
    return x + y + z;
}

// Returns 6
let getCalculation = myFunction.apply({}, [ 1, 2, 3 ]);
Войти в полноэкранный режим Выйти из полноэкранного режима

Здесь я оставляю объект this пустым, поэтому если бы мы использовали this в myFunction, это был бы пустой объект — именно это делает первый аргумент apply(). Второй — это наш массив [1, 2, 3], ссылающийся на x, y и z соответственно.

Оцените статью
Procodings.ru
Добавить комментарий