Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我有一个充满项目的JSON,我希望有一种方法可以自动将项目添加到嵌入页面,但它会为每个项目添加新的嵌入_Javascript_Node.js_Discord.js - Fatal编程技术网

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。。感谢您让我知道,我保留了对象的原样,以便在代码中以这种方式进行操作时易于理解。