# Метод map()

Метод <mark style="background-color:red;">map()</mark> є одним із перебираючих методів масивів. Цей метод використовується для створення нового масиву на основі вихідного масиву, змінюючи (трансформуючи) кожний елемент за допомогою переданої колбек-функції.

**Синтаксис методу map():**

```javascript
const newArray = outputArray.map((element, index, array) => {
    // Повернути трансформований елемент
});
```

**Що виконує метод**:

* Поелементо перебирає вихідний масив.
* Не змінює вихідний масив.
* Результат роботи колбек-функції записується у новий масив.
* Повертає новий масив такої довжини, як і вихідний масив.

Тобто на базі вихідного масива формується новий масив такої самої довжини за якоюсь вимогою. Розгляднемо далі приклади.&#x20;

**Приклад 1**

Переберемо вихідний масив методом map() так, щоб повернувся новий масив елементи якого вдвічі більші за елементи вихідного масива.&#x20;

```javascript
const array1 = [1, 2, 3, 4, 5];
console.log(array1); // [1, 2, 3, 4, 5]

const array2 = array1.map((item) => {
  return item * 2;
});

console.log(array1); // [1, 2, 3, 4, 5]
console.log(array2); // [2, 4, 6, 8, 10]
```

Оскільки задача для методу досить проста, то запис можна ще більше упростити використавши неявне повернення.

```javascript
const array2 = array1.map((item) => item * 2);
```

**Приклад 2**

Переберемо вихідний масив і у новий масив покладемо елементи переведені в високий регістр.&#x20;

```javascript
const colors = ["Red", "Blue", "Yellow", "Orange"];
console.log(colors); // ["Red", "Blue", "Yellow", "Orange"]

const upperCaseColors = colors.map((el) => el.toUpperCase());

console.log(colors); // ["Red", "Blue", "Yellow", "Orange"]
console.log(upperCaseColors); // ['RED', 'BLUE', 'YELLOW', 'ORANGE']
```

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2F1CztSxjqDtPpKKRJk2Hz%2Fmap-colors.png?alt=media&#x26;token=f2b425fa-a55a-4c02-9b61-399818d3dd5f" alt="" width="375"><figcaption></figcaption></figure>

Як бачимо вихідний масив не змінився, а новий переведено у високий регістр.

## Масив обʼєктів

У більшості випадків розробникам доводиться працювати з масивом обʼєктів, які містять велику кількість властивостей. І буденною процедурою буде витягнути на його основі новий масив із якихось властивостей вихідного масива.

Наприклад потрібно витягнути прізвища користувачів.

**Приклад 3**

```javascript
const users = [
  { name: "Taras", surname: "Shevchenko" },
  { name: "Lesia", surname: "Ukrainka" },
  { name: "Ivan", surname: "Franko" },
];

console.log(users); // array of objects

const usersSurnames = users.map((el) => el.surname);
console.log(usersSurnames); //  ['Shevchenko', 'Ukrainka', 'Franko']
```

<figure><img src="https://2207544843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnGZ6aKsaRNTtzzpVD8b0%2Fuploads%2F7mIoS5WfzsxakYnvWJSL%2Fmap-object-users.png?alt=media&#x26;token=1249545d-6d6c-4271-8fb3-8b62bc615611" alt="" width="375"><figcaption></figcaption></figure>

На практиці метод <mark style="background-color:red;">map()</mark> використовується найчастіше.
