Map.prototype.has() в JavaScript

Метод has() проверяет, есть ли в Map переданный ключ. Если есть, он возвращает true, иначе - false.

Синтаксис

map.has(key)

В метод передается ключ. Запись Map.prototype.has означает, что этот метод доступен всем объектам Map.

let userRoles = new Map([
  ['admin', 'full access'],
  ['editor', 'can edit'],
])

console.log(userRoles.has('admin')) // true
console.log(userRoles.has('guest')) // false

has() не изменяет коллекцию. Он только сообщает, существует ли ключ.

Проверяется ключ, а не значение

Метод ищет только среди ключей. Значение из Map передавать в has() не нужно.

let prices = new Map([
  ['book', 500],
])

console.log(prices.has('book')) // true
console.log(prices.has(500)) // false

Проверка перед действием

Результат has() удобно использовать в условии, когда нужно выполнить действие только для существующей записи.

let cart = new Map([
  ['book', 2],
])

let product = 'pen'

if (cart.has(product)) {
  console.log('Товар уже есть в корзине')
} else {
  cart.set(product, 1)
}

Метод has() проверяет наличие ключа, а get() получает связанное с ним значение.