以这段代码为例:
const db = new Map()
db.set('Neo4J', Neo4J.getDriver())
db.set('MongoDB', MongoDB.getDB())
有没有一种类似于地图字面量的方式来缩短这个代码呢?
以这段代码为例:
const db = new Map()
db.set('Neo4J', Neo4J.getDriver())
db.set('MongoDB', MongoDB.getDB())
const db = new Map([
['Neo4J', Neo4J.getDriver()],
['MongoDB', MongoDB.getDB()]
])
Map
构造函数接受一个可迭代对象:
一个数组或其他可迭代对象,其元素是键值对(如有两个元素的数组[[ 1, 'one' ],[ 2, 'two' ]])。每个键值对都将添加到新的Map中;null值被视为undefined。
可以通过Object.entries
使用对象字面量定义一个地图,该方法返回一个由键值对组成的可迭代对象:
new Map(Object.entries({
Neo4J: Neo4J.getDriver(),
MongoDB: MongoDB.getDB()
}));
Object.entries
是ES2017引入的新特性,它可以在ES5和ES6中通过polyfill实现。
Object.entries
。 - undefined
Map
和Set
都接受任何可迭代对象作为参数,通常意味着长度可知。不幸的是,这排除了大多数普通对象,这本来更容易用作键值对。 - undefined