Javascript 我有一个充满项目的JSON,我希望有一种方法可以自动将项目添加到嵌入页面,但它会为每个项目添加新的嵌入
我的代码:Javascript 我有一个充满项目的JSON,我希望有一种方法可以自动将项目添加到嵌入页面,但它会为每个项目添加新的嵌入,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我的代码: //获取我的对象 const storeOptions=require(“../util/storeOption.json”) const options=Object.keys(storeOptions) //在它们之间循环 用于(选项的常数x){ 常量选项={ 名称:`${storeOptions[x].emoji}${storeOptions[x].name}`, 值:`${storeOptions[x]。成本}\n${storeOptions[x]。说明}` } const
//获取我的对象
const storeOptions=require(“../util/storeOption.json”)
const options=Object.keys(storeOptions)
//在它们之间循环
用于(选项的常数x){
常量选项={
名称:`${storeOptions[x].emoji}${storeOptions[x].name}`,
值:`${storeOptions[x]。成本}\n${storeOptions[x]。说明}`
}
const embed=new MessageEmbed()
.setAuthor(message.author.tag,message.author.displayAvatarURL())
.setDescription('这是我们的商店!\n\n**Shop Items**')
.addFields(可选)
message.channel.send(嵌入)
}
我希望所有字段都在一个嵌入中,但它会在字段中使用一个对象发送新的字段。它会为每个项目发送新的嵌入,因为您正在声明嵌入并将其发送到channel inside for loop。 此外,您还使用了
addFeilds
,通过一次提供对象数组(带有名称和值),可以使用它一次设置多个feild
我建议您在for循环之前声明MessageEmbed
,并在每次迭代中将addFeild
添加到嵌入
const storeOptions=require(“../util/storeOption.json”)
const options=Object.keys(storeOptions)
//在for循环开始之前声明嵌入
const embed=new MessageEmbed()
.setAuthor(message.author.tag,message.author.displayAvatarURL())
.setDescription('这是我们的商店!\n\n**Shop Items**')
用于(选项的常数x){
常量选项={
名称:`${storeOptions[x].emoji}${storeOptions[x].name}`,
值:`${storeOptions[x]。成本}\n${storeOptions[x]。说明}`
}
//添加要嵌入的feld
embed.addField(选项)
}
返回消息.channel.send(嵌入);
这很有效,谢谢。唯一的问题是,embed.addField
不接受对象,而是接受字符串。但是,embed.addFields
确实有效,因为它接受一个object.Ohk。。感谢您让我知道,我保留了对象的原样,以便在代码中以这种方式进行操作时易于理解。