JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript Collection. Map


Map

Map або карта (відображення, словник) представляє структуру даних, де кожен елемент має ключ і значення. Ключі в рамках карти є унікальними, тобто з одним ключем може бути зіставлений тільки один елемент. Для створення карти застосовується конструктор об'єкта Map :

let myMap = new Map();

Також можна форматувати карту початковими значеннями. Для цього в конструктор передається масив, елементи якого являють масиви з двох елементів - перший елемент буде виступати в якості ключа, а другий - в якості значення:

let myMap = new Map([[1, "a"], [2, "b"], [3, "c"]]);
console.log(myMap);     // Map(3) {1 => "a", 2 => "b", 3 => "c"}

В даному випадку числа 1, 2, 3 є ключами, а рядки "a", "b", "c" - значеннями.

При цьому ключі і значення необовязково повинні бути одного типу:

let myMap = new Map([["a", 1], [2, "b"], ["c", true]]);
console.log(myMap);     // Map(3) {"a" => 1, 2 => "b", "c" => true}

Додавання і зміна елементів

Щоб додати або змінити значення застосовується метод set () :

let myMap = new Map([[1, "a"], [2, "b"], [3, "c"]]);
myMap.set(4, "d");      // додавання елемента
myMap.set(2, "v");      // заміна елемента
console.log(myMap);     // Map(4) {1 => "a", 2 => "v", 3 => "c", 4 => "d"}

Перший параметр методу set() представляє ключ, а другий параметр - значення елемента. Якщо за ключом немає елементів, то додається новий елемент. Якщо ключ вже є, то вже наявний елемент змінює своє значення.


отримання елементів

Для отримання елемента по ключу застосовується метод get () , в який передається ключ елемента:

let myMap = new Map([[1, "Tom"], [2, "Bob"], [3, "Sam"]]);
console.log(myMap.get(2));  // Bob
console.log(myMap.get(7));  // undefined

Якщо map не містить елемента по заданому ключу, то метод повертає undefined .

Щоб уникнути повернення undefined ми можемо перевірити наявність елемента по ключу за допомогою методу has () . Якщо елемент по ключу є, то метод повертає true , інакше повертається false :

let myMap = new Map([[1, "Tom"], [2, "Bob"], [3, "Sam"]]);
console.log(myMap.has(2));  // true
console.log(myMap.has(7));  // false

видалення елементів

Для видалення одного елемента по ключу використовується метод delete() :

let myMap = new Map([[1, "Tom"], [2, "Bob"], [3, "Sam"]]);
myMap.delete(2);
console.log(myMap);     // Map(2) {1 => "Tom", 3 => "Sam"}

Для видалення всіх елементів використовується метод clear() :

let myMap = new Map([[1, "Tom"], [2, "Bob"], [3, "Sam"]]);
myMap.clear();
console.log(myMap);     // Map(0) {}

Перебір елементів

Для перебору елементоі використовується метод forEach :

let myMap = new Map([[1, "Tom"], [2, "Bob"], [3, "Sam"]]);
 
myMap.forEach(function(value1, value2, map){
    console.log(value2, value1);
})

Метод forEach як параметр отримує функцію зворотного виклику, яка має три параметри. Перший і другий параметри - це відповідно значення і ключ поточного перебираючого елемента, а третій параметр - перебираючий об'єкт Map .

Консольний результат даного прикладу:

Map [/tag_code]можна використовувати цикл  for...of :[/p]

[code]let myMap = new Map([[1, "Tom"], [2, "Bob"], [3, "Sam"]]);
 
for(item of myMap){
    console.log(item[0], item[1]);
}

Кожен елемент з Map поміщається в змінну item , яка в свою чергу представляє масив. Перший елемент цього масиву - ключ, а другий елемент - значення елемента.

Також об'єкт Map має два додаткових методи: keys() дозволяє перебрати тільки ключі і values() дозволяє перебирати значення елементів. Обидва методи повертають ітератори, тому для перебору ключів і значень окремо також можна використовувати цикл for ... of :

let myMap = new Map([[1, "Tom"], [2, "Bob"], [3, "Sam"]]);
 
for(item of myMap.keys()){
    console.log(item);
}

for(item of myMap.values()){
    console.log(item);
}

Наш партнер:
beta test mp3 playlist downloader