Ami*_*mit 41

你最接近的是:

let object = new Map([
  ['foo', 'bar'],
  ['1', 42]
]);
Run Code Online (Sandbox Code Playgroud)

需要注意的重要事项:

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

  • @zeroflagL - 因为问题是如何初始化一个类似于对象的 Map,而对象键总是字符串。如果你想要一个等价的,但作为一个 Map,你也需要使用字符串。 (4认同)
  • @RGraham - 正如我在第一点中提到的那样. (3认同)
  • 第1点没有意义。如果键可以是任何值,那么我为什么要确保它们是字符串? (2认同)
  • @Avlin - 我不建议在客户端脚本中使用`Map`,如果它是IE11,那么你将面临很多缺失的功能.而是使用polyfill或transpiler来获得稳定的功能. (2认同)

小智 5

在现代浏览器中,它可以很简单:

new Map(Object.entries(object))
Run Code Online (Sandbox Code Playgroud)

  • 请注意,由于无法保证对象的键插入顺序,因此您将丢失该断言。`.entries` 可能会以不同的顺序返回项目。 (2认同)