Метод map()

Метод map() є одним із перебираючих методів масивів. Цей метод використовується для створення нового масиву на основі вихідного масиву, змінюючи (трансформуючи) кожний елемент за допомогою переданої колбек-функції.

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

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

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

  • Поелементо перебирає вихідний масив.

  • Не змінює вихідний масив.

  • Результат роботи колбек-функції записується у новий масив.

  • Повертає новий масив такої довжини, як і вихідний масив.

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

Приклад 1

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

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]

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

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

Приклад 2

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

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']

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

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

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

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

Приклад 3

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']

На практиці метод map() використовується найчастіше.

Last updated