Функция map: оптимизация работы с массивами
Функция map - это функция высшего порядка в языке программирования, которая принимает два аргумента: массив данных (или итерируемый объект) и функцию-обработчик элементов массива. Функция применяет обработчик к каждому элементу массива и возвращает новый массив, содержащий результаты обработки.
Синтаксис функции выглядит следующим образом:
let result = array.map(function callback(currentValue[, index[, array]]) {
// Вернуть элемент для нового массива
}[, thisArg]);
Здесь:
- `array` - исходный массив;
- `callback` - функция, которая будет вызываться для каждого элемента массива;
- `currentValue` - текущий элемент массива, который обрабатывается функцией `callback`;
- `index` (необязательный) - индекс текущего элемента;
- `array` (необязательный) - исходный массив;
- `thisArg` (необязательный) - значение `this`, которое будет использоваться внутри функции `callback`.
Пример использования функции map для преобразования массива чисел в массив квадратов этих чисел:
let numbers = [1, 2, 3, 4, 5];
let squares = numbers.map(function(num) {
return num * num;
});
console.log(squares); // [1, 4, 9, 16, 25]
В этом примере функция `map` принимает массив `numbers` и функцию-обработчик, которая принимает каждый элемент массива и возвращает его квадрат. Функция `map` выполняет обработку каждого элемента массива и возвращает новый массив `squares`, содержащий квадраты элементов.
Также функция `map` может использоваться для преобразования объектов. Например, можно преобразовать массив объектов, содержащих информацию о пользователях, в массив их имен:
let users = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 },
{ name: "Charlie", age: 35 }
];
let names = users.map(function(user) {
return user.name;
});
console.log(names); // ["Alice", "Bob", "Charlie"]
Здесь функция-обработчик `callback` принимает объект `user` и возвращает его свойство `name`. Функция `map` применяет `callback` к каждому объекту в массиве `users`, возвращая новый массив `names`, содержащий имена пользователей.