JavaScript Map.has() — чи є такий ключ
Метод has() перевіряє, чи є такий ключ у Map, і повертає true або false.
Загальний опис
Здавалося б, те саме можна зробити через get(key) !== undefined — але ні. Якщо значенням навмисно покладено undefined, ця перевірка збреше: ключ є, а перевірка скаже, що немає.
has() дивиться саме на наявність ключа, не на значення. Це єдиний чесний спосіб.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| has | 38+ | 13+ | 8+ | 25+ | 12+ | 11+ |
| Переглядач | ||||
|---|---|---|---|---|
| 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));
Коментарі
Коментарів ще немає — будьте першим!