Хранение цифр в 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 шт):

Автор решения: vsemozhebuty

Map — это структура, которая хранит данные в формате ключ + значение. В этом она похоже на объекты. Чтобы создать запись в этой структуре данных, мы должны предоставить эту пару — ключ и значение. Поэтому и был принят такой формат при создании Map: пара ключ + значение оформляется как массив из двух элементов, первый элемент как ключ, второй как значение.

При этом должна быть возможность создавать сразу несколько таких записей — тем самым должна быть возможность предоставлять несколько пар из ключа и значения. И чтобы была возможность задавать несколько таких пар, они задаются как массив массивов, то есть как массив таких пар. Даже если вы создаёте одну запись, то есть Map с одни элементом, всё равно это должно быть оформлено как массив, внутри которого ещё один массив, который содержит ключ и значение.

let map = new Map(
  [           // эти скобки окружают весь список из элементов, из пар "ключ + значение"
    [2, 3]    // эти скобки окружают один элемент, одну пару "ключ 2 + значение 3"
  ]
);

Чтобы у нас всегда была возможность расширить формат для нескольких элементов:

let map = new Map(
  [           // эти скобки окружают весь список из элементов, из пар "ключ + значение"
    [2, 3],   // эти скобки окружают первый элемент, первую пару "ключ 2 + значение 3"
    [4, 5]    // эти скобки окружают второй элемент, вторую пару "ключ 4 + значение 5"
  ]
);
→ Ссылка