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

时间:2015-10-01 00:13:12

标签: javascript ecmascript-6

等同于

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

使用ES6 Map

2 个答案:

答案 0 :(得分:37)

最接近的是:

var a = require('./file_a').getTest() 
console.log(typeof a.print)  //Cannot read property 'print' of null

需要注意的重要事项:

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

答案 1 :(得分:5)

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

const Discord = require("discord.js");
const bot = new Discord.Client();
bot.on("ready", () => {
    bot.guilds.forEach((guild) => { //for each guild the bot is in
         let defaultChannel = "";
         guild.channels.forEach((channel) => {
               if(channel.type == "text" && defaultChannel == "") {
               if(channel.permissionsFor(guild.me).has("SEND_MESSAGES")) {
                   defaultChannel = channel;
               }
               }
         })
         setInterval (function () {
              defaultChannel.send("Message here") //send it to whatever channel the bot has permissions to send on
         }, 30 * 1000);
   })
})