JavaScript Map.has() — чи є такий ключ


Метод has() перевіряє, чи є такий ключ у Map, і повертає true або false.

автор: NagarD

Загальний опис

Здавалося б, те саме можна зробити через get(key) !== undefined — але ні. Якщо значенням навмисно покладено undefined, ця перевірка збреше: ключ є, а перевірка скаже, що немає.

has() дивиться саме на наявність ключа, не на значення. Це єдиний чесний спосіб.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
has 38+ 13+ 8+ 25+ 12+ 11+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
has 38+ yes yes 8+

Приклади

+ запропонувати свій приклад у пісочниці

Ключ є, а значення — undefined: тільки has() каже правду.

const map = new Map();

map.set('found', undefined);

console.log(map.get('found') !== undefined); // false — бреше
console.log(map.has('found'));               // true — правда

// типове застосування: кеш
const cache = new Map();

async function getItem(id) {
    if (!cache.has(id)) {
        cache.set(id, { id, name: 'елемент ' + id }); // тут міг би бути запит
    }

    return cache.get(id);
}

getItem(1).then(item => console.log(item));
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід