从ES6开始,JavaScript有一个合适的Map对象。我没有看到使用文字符号的方法,就像使用数组或对象一样。我错过了,还是不存在?
数组:var arr = ["Foo", "Bar"];
对象:var obj = { foo: "Foo", bar: "Bar" };
地图:???
答案 0 :(得分:35)
不,ES6没有Map
或Set
s的文字表示法。
你必须使用它们的构造函数,传递一个iterable(通常是一个数组文字):
var map = new Map([["foo", "Foo"], ["bar", "Bar"], …]);
var set = new Set(["Foo", "Bar", …]);
有一些提议要为语言添加新的文字语法,但没有一个提交到ES6(我个人不相信他们会在未来的任何版本中使用它)。
答案 1 :(得分:6)
它就像一个HashMap - 没有文字版本。你必须像构造函数一样定义它。
您可以阅读this topic,其中讨论地图文字,以及为什么要添加它们。它基本上是关于Map文字的其他潜在提案。我个人不能预测ES7中的字面语法,因为地图很容易使用 - 但在将来的提案中可能会使用语法糖。
使用octothorp(散列)来讨论潜在文字符号的示例,如下所示:
const myMap = Map#{expression("derp"): value("herp")};
答案 2 :(得分:5)
有一种方法可以做到,就像我们使用文字一样
const fruits = new Map(Object.entries({apples: 1, bananas: 2}))