Map: коллекция ключей и значений
Map хранит пары ключей и значений, позволяя использовать ключами не только строки, но и другие значения JavaScript.
Назначение
Map хранит пары ключей и значений, позволяя использовать ключами не только строки, но и другие значения JavaScript.
Как это работает
set записывает значение, get читает, has отличает отсутствие ключа, size сообщает количество пар. Повторная запись по тому же ключу заменяет значение, а не добавляет вторую пару.
Пример
const scores=new Map([['html',3]]);
scores.set('html',5);
scores.set('css',undefined);
console.assert(scores.size===2);
console.assert(scores.get('html')===5);
console.assert(scores.has('css'));
console.assert(!scores.has('js'));
Что должно получиться
Замена оценки HTML не увеличила число ключей. CSS существует даже со значением undefined; JS отсутствует, и это явно видно через has.
Граница применения и частая ошибка
Если get вернул undefined, ключ может отсутствовать или хранить именно undefined. Когда это различие важно, используйте has вместо проверки одного только результата чтения.
Самостоятельная проверка
Запишите новое значение по существующему ключу и проверьте size. Затем сохраните undefined под отдельным ключом и сравните его с ключом, который никогда не добавляли.
JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.