是否有创建地图的简便方法?

时间:2017-09-04 20:48:02

标签: javascript dictionary ecmascript-6

以此代码为例:

<div class="banner_set">
  <ul class="nav">
    <li id="0" class="nav-items">
      <a href="example.com">
        <img src="http://placehold.it/130x130">
        <div id="bannerText_0">Img 1</div>
      </a>
    </li>
    <li id="1" class="nav-items">
      <a href="example.com">
        <img src="http://placehold.it/130x130">
        <div id="bannerText_1">Img 2</div>
      </a>
    </li>

    <li id="2" class="nav-items">
      <a href="example.com">
        <img src="http://placehold.it/130x130">
        <div id="bannerText_2">Img 3</div>
      </a>
    </li>
  </ul>
</div>

有没有办法像某种地图文字一样缩短这个?

2 个答案:

答案 0 :(得分:1)

我想我找到了答案。这看起来很完美:

const db = new Map()
db.set('Neo4J', Neo4J.getDriver())
db.set('MongoDB', MongoDB.getDB())

需要这个的原因是我的数据库连接驱动程序由于某些键包含函数值而爆炸。

地图可以很好地处理:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Map

答案 1 :(得分:1)

Map构造函数accepts an iterable

  

一个数组或其他可迭代对象,其元素是键值对(具有两个元素的数组,例如[[1,'one'],[2,'two']])。每个键值对都添加到新Map中; null值被视为未定义。

可以通过Object.entries使用对象文字定义地图,该地图返回由键值对组成的可迭代:

new Map(Object.entries({
  Neo4J: Neo4J.getDriver(),
  MongoDB: MongoDB.getDB()
}));

Object.entries是ES2017,它在ES5和ES6中是可填充的。