使用array.length创建新的不和谐嵌入字段

时间:2019-06-22 17:04:57

标签: javascript arrays embed discord.js

因此,我有一个名称数组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);
}


1 个答案:

答案 0 :(得分: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++)