Подтвердить что ты не робот

Имеет ли JavaScript буквенное обозначение карты?

Как и в ES6, JavaScript имеет собственный объект Map. Я не вижу способа использовать буквенную нотацию, хотя, как вы могли бы с массивом или объектом. Я пропустил его, или он не существует?

Массив: var arr = ["Foo", "Bar"];

Объект: var obj = { foo: "Foo", bar: "Bar" };

Карта:

4b9b3361

Ответ 1

Нет, ES6 не имеет буквенного обозначения для Map или Set s.

Вам нужно будет использовать их конструкторы, передавая итеративный (как правило, литерал массива):

var map = new Map([["foo", "Foo"], ["bar", "Bar"], …]);

var set = new Set(["Foo", "Bar", …]);

Есть несколько предложений по добавлению нового синтаксиса literal к языку, но ни один из них не попал в ES6 (и я лично не уверен, что они попадут в любую будущую версию).

Ответ 2

Это как HashMap - нет литерала. Вы должны определить его так же, как и конструктор.

Вы можете прочитать этот раздел, в котором обсуждаются литералы по карте, и почему они должны быть добавлены. Это в основном другие потенциальные предложения по картографическим литералам. Я лично не могу увидеть буквальный синтаксис в ES7, так как Maps очень прост в использовании, как есть, но в будущих предложениях может быть применен синтаксический сахар.

Был рассмотрен пример потенциальной литературной нотации с использованием октоторпа (хеш), чтобы выглядеть примерно так:

const myMap = Map#{expression("derp"): value("herp")};

Ответ 3

Есть способ сделать это, как мы делаем с литералами

const fruits = new Map(Object.entries({apples: 1, bananas: 2}))