Функция map()
— это метод прототипа Array, что означает, что ее можно использовать для любого массива в JavaScript. Он принимает функцию обратного вызова в качестве аргумента, которая применяется к каждому элементу массива, и возвращает новый массив с возвращенными значениями.
Вот синтаксис функции map()
:
array.map(callback(currentValue[, index[, array]])[, thisArg])
Функция callback
принимает три аргумента:
currentValue
: текущий обрабатываемый элемент в массивеindex
(необязательно): индекс текущего обрабатываемого элемента в массивеarray
(необязательно): массив, к которому вызываетсяmap()
Функция callback
должна возвращать значение, которое будет включено в новый массив.
Функция map()
также принимает необязательный аргумент thisArg
, который можно использовать для указания значения this
в функции callback
.
Вот пример использования функции map()
для возведения в квадрат значений в массиве чисел:
let numbers = [1, 2, 3, 4, 5]; let squared = numbers.map(function(number) { return number * number; }); // squared is now [1, 4, 9, 16, 25]
В этом примере функция callback
принимает один аргумент number
, который представляет каждый элемент в массиве numbers
. Функция возвращает значение number
в квадрате, а функция map()
создает новый массив squared
с этими возвращенными значениями.
Вы также можете использовать функцию map()
со стрелочными функциями, что может сделать ваш код более лаконичным:
let numbers = [1, 2, 3, 4, 5]; let squared = numbers.map(number => number * number); // squared is now [1, 4, 9, 16, 25]
В этом примере функция стрелки number => number * number
эквивалентна функции обратного вызова function(number) { return number * number; }
.
Функция map()
часто используется для преобразования массива объектов. Например, рассмотрим массив объектов, представляющих список пользователей:
let users = [ {id: 1, name: "Alice"}, {id: 2, name: "Bob"}, {id: 3, name: "Charlie"} ]; let names = users.map(user => user.name); // names is now ["Alice", "Bob", "Charlie"]
В этом примере стрелочная функция user => user.name
применяется к каждому элементу массива users
, а функция map()
создает новый массив names
с возвращаемыми значениями.
Важно отметить, что функция map()
не изменяет исходный массив. Вместо этого он создает новый массив с преобразованными значениями. Это полезно для предотвращения непреднамеренных побочных эффектов, но это означает, что вам нужно будет присвоить возвращаемый массив новой переменной, если вы хотите сохранить преобразованные значения.
В заключение, функция JavaScript map()
— это мощный инструмент для преобразования массивов и управления ими. Он позволяет перебирать массив, применять функцию обратного вызова к каждому элементу и создавать новый массив с возвращаемыми значениями. Это полезный инструмент для широкого круга приложений, который может значительно упростить ваш код.