【问题标题】:Creating new discord embed fields with array.length使用 array.length 创建新的不和谐嵌入字段
【发布时间】:2019-11-05 03:10:59
【问题描述】:

所以我有一个名称数组let namelist = ['name1', 'name2', 'name3', 'name4', 'name5'];,并且我有一个for循环,当用户使用命令$list ame时,它会对数组进行排序并抓取其中包含“ame”的任何元素并将它们推入一个新数组temparray。 我的问题是如何制作一个嵌入来获取 temparray.length 并为数组中的每个字符串创建一个新字段?

我尝试过使用 for 循环和 do...while() 循环,但我似乎无法弄清楚如何访问嵌入,因此我可以在循环中使用 addField。是否可以这样做和/或有更好的方法可以为每个数组元素添加新行? 这是我没有循环的嵌入代码。我想摆脱那些 .addFields 并将它们放在一个循环中以实现自动化



if(typeof args[0] === 'string' && args[0].length >= 3){
    let embed = new Discord.RichEmbed()
    .setAuthor("Names containing " + "'" + `${args[0]}` + "'" )
    .addField(temparray[0], `this is ${temparray[0}` )
    .addField(temparray[1], `this is ${temparray[1}`)
    .addField(temparray[2], `this is ${temparray[2}`)
    .addField(temparray[3], `this is ${temparray[3}`)
    .addField(temparray[4], `this is ${temparray[4}`)
    .setColor("#92BA2F")
    .setThumbnail(bot.user.avatarURL)
    .setTimestamp(Date.now())
    message.channel.send(embed);
}


【问题讨论】:

    标签: javascript arrays embed discord.js


    【解决方案1】:

    简单,只需 .addField() 在循环中的 embed 变量上。

    let embed = new Discord.RichEmbed()
      .setAuthor("Names containing " + "'" + `${args[0]}` + "'" )
      .setColor("#92BA2F")
      .setThumbnail(bot.user.avatarURL)
      .setTimestamp(Date.now());
    temparray.forEach(entry => {
      embed.addField(entry, 'looped field');
    });
    message.channel.send(embed);
    

    您不需要为此使用数组的长度,但如果您愿意,可以使用for (let i = 0; i < temparray.length; i++)

    【讨论】:

    • 步长应该小于经典for循环中的数组长度,因为一个是从零开始的,另一个不是。 for (let i = 0; i < temparray.length; i++)
    • @slothiful 谢谢!我将在其中进行编辑 - 我总是对 for 循环检查有误!
    猜你喜欢
    • 2022-01-14
    • 2021-12-17
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多