如何初始化ES6/ES2015中的Map,类似于Object表达式

How to initialize a Map in ES6/ES2015 similar to an Object expression?

本文关键字:Map 类似于 Object 表达式 中的 ES2015 初始化 ES6      更新时间:2023-09-26

var object = {
  'foo': 'bar',
  1: 42
}

使用ES6 Map?

你能得到的最接近的是:

let object = new Map([
  ['foo', 'bar'],
  ['1', 42]
]);

注意事项:

  1. 对象属性由字符串标识,而Map键可以是任何值,因此请确保输入数组中的所有键都是字符串。
  2. 迭代Map对象按插入顺序生成条目。对于对象来说,这并不能保证,所以行为可能会有所不同。

在现代浏览器中,它可以像这样简单:

new Map(Object.entries(object))

这个名为map-literal的NPM包正是你想要的。

Object.entries()new Map()可以为您创建一个Map对象,但它不能处理嵌套结构。因此,您需要使用一个包。