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