问题
下面的代码将数据库中的数据映射到MessageEmbed.description
中。我想映射MessageEmbed.fields
中的每个数据。我尝试过使用for()
循环,但我想简要了解如何做到这一点,因为我使用了两个侦听器:-w(数据的内容(和I。
我的代码
await db.findOne({ guildid: message.guild.id, user: member.user.id }, async(err, data) =>{
if(err) throw err;
if(data) {
const embed = new Discord.MessageEmbed()
.setTitle(`${message.author.tag}`)
.setDescription(
data.content.map(
(w, i) =>
``${i + 1}` | **${w.data1}**n**${w.data2}**`
)
)
.setFooter(`Total : ${data.content.length}`)
message.channel.send(embed)
} else {
message.channel.send('No data found')
}
});
for((循环[我的尝试]
for(w, i of data.content){
embed.addField(`${i + 1}`, `${w.data1}n${w.data2}`, true)
};
然而,这导致了一个错误。
您可以使用.forEach()
,它将生成当前元素和当前索引:
data.content.forEach((w, i) => {
embed.addField(`${i + 1}`, `${w.data1}n${w.data2}`, true);
});
如果您想使用for
循环,请使用for .. in
获取索引:
for (let i in data.content){
let w = data.content[i];
embed.addField(`${i + 1}`, `${w.data1}n${w.data2}`, true);
}
不过我不推荐后者。