创建后将字段数据从数组添加到嵌入

时间:2020-07-17 11:49:26

标签: javascript discord discord.js

编辑:已修复。谢谢大家

由于要添加保存在数组中的值,因此我尝试将字段从for创建后添加到嵌入中。

我尝试了下一个代码,没有人起作用

for(let i = 0; i < nombres.length; i++){
            embed.addField(nombres[i], descripciones[i], true)
        }
for(let i = 0; i < nombres.length; i++){
            embed = {
                fields: {
                    name: nombres[i],
                    value: descripciones[i],
                    inline: true,
                },
            };
        }
for(let i = 0; i < nombres.length; i++){
            embed.fields(nombres[i], descripciones[i], true)
        }
for(let i = 0; i < nombres.length; i++){
            embed.addFields({name: nombres[i], value: descripciones[i], inline: true});
        }

问题是,我想做这样的事情,但是行得通

let nombres = [];
let descripciones = [];

const embed = new Discord.MessageEmbed()
.setDescription('All commands available.')

for(let i = 0; i < nombres.length; i++){
   embed.addField(nombres[i], descripciones[i], true)
}

而我得到的只是这个
enter image description here

1 个答案:

答案 0 :(得分:0)

尝试此代码,它应该可以工作

const { MessageEmbed } = require("discord.js")

let array1 = ["1", "2", "3", "4"]
let array2 = ["one", "two", "three", "four"]

var embed = new MessageEmbed();

embed.setDescription('test')

for (let i = 0; i < array1.length; i++) 
{
   embed.addField(array1[i], array2[i], false)
}

message.channel.send(embed)

enter image description here

// imports
const Discord = require("discord.js");
const fs = require("fs").promises;
const fss = require("fs");
const path = require("path");

// exports
module.exports = {
    name: "commands",
    alias: ["commands"],
    description: "",
    run: (client, message, args) => {

        let nombres = [],
            descripciones = [];

        fs.readdir(path.join(__dirname))
            .then(filess => {
                x = 0;
                filess.forEach(fil => {
                    if (!fil.endsWith('.js')) return;
                    let commandName = fil.substring(0, fil.indexOf('.js'));
                    let commandModule = require(path.join(__dirname, commandName));

                    nombres[x] = commandName;
                    descripciones[x] = commandModule.description;
                    x++
                    console.log(x, nombres[x], descripciones[x])
                })
            })


        var embed = new Discord.MessageEmbed();

        embed.setDescription('All commands available.')

        for (let i = 0; i < nombres.length; i++) {
            embed.addField(nombres[i], descripciones[i], false)
        }

        console.log({ embed })
        message.channel.send(embed)
    }
}