Хранение цифр в Map
Почему значения в Map можно лишь хранить в виде многомерного массива?
Объясните пожалуйста, почему мой второй и третий вариант не работают?
let map = new Map([[2,3]]); // - работает
//let map2 = new Map(2,3); - ошибка((
//let map3 = new Map([2,3]); - так тоже ошибка(((
alert(map.get(2));
Ответы (1 шт):
Map — это структура, которая хранит данные в формате ключ + значение. В этом она похоже на объекты. Чтобы создать запись в этой структуре данных, мы должны предоставить эту пару — ключ и значение. Поэтому и был принят такой формат при создании Map: пара ключ + значение оформляется как массив из двух элементов, первый элемент как ключ, второй как значение.
При этом должна быть возможность создавать сразу несколько таких записей — тем самым должна быть возможность предоставлять несколько пар из ключа и значения. И чтобы была возможность задавать несколько таких пар, они задаются как массив массивов, то есть как массив таких пар. Даже если вы создаёте одну запись, то есть Map с одни элементом, всё равно это должно быть оформлено как массив, внутри которого ещё один массив, который содержит ключ и значение.
let map = new Map(
[ // эти скобки окружают весь список из элементов, из пар "ключ + значение"
[2, 3] // эти скобки окружают один элемент, одну пару "ключ 2 + значение 3"
]
);
Чтобы у нас всегда была возможность расширить формат для нескольких элементов:
let map = new Map(
[ // эти скобки окружают весь список из элементов, из пар "ключ + значение"
[2, 3], // эти скобки окружают первый элемент, первую пару "ключ 2 + значение 3"
[4, 5] // эти скобки окружают второй элемент, вторую пару "ключ 4 + значение 5"
]
);