Javascript 将数组的值用作不协调嵌入中的值

Javascript 将数组的值用作不协调嵌入中的值,javascript,discord,discord.js,Javascript,Discord,Discord.js,我正在尝试制作一个机器人,它可以生成加入raid队列的玩家列表。当您键入时!join它应该将您添加到playerlist数组中(按预期工作)。然后,我希望将分配给该数组的值作为字段传递到discord消息中。当您键入时!fireteam它应该显示嵌入,显示键入的每个人的用户名!加入。它几乎像预期的那样工作。我唯一的问题是,每次有人键入join命令时,它都会再次添加整个数组,而不是最新添加的数组 const Discord = require('discord.js'); const { pref

我正在尝试制作一个机器人,它可以生成加入raid队列的玩家列表。当您键入时!join它应该将您添加到
playerlist
数组中(按预期工作)。然后,我希望将分配给该数组的值作为字段传递到discord消息中。当您键入时!fireteam它应该显示嵌入,显示键入的每个人的用户名!加入。它几乎像预期的那样工作。我唯一的问题是,每次有人键入join命令时,它都会再次添加整个数组,而不是最新添加的数组

const Discord = require('discord.js');
const { prefix, token } = require('./config.json');
const { default: Collection } = require('@discordjs/collection');

const client = new Discord.Client();

const playerlist = [];


const pListEmbed = new Discord.MessageEmbed()
.setColor('#3CB371')
.setTitle('RAID')
.addFields(
    {name: 'Fireteam', value: "Players who have joined: ", inline: true}
)


function joinpug(message) {
    if(playerlist.length <= 5){
    playerlist.push(message.author.username)
    console.log(playerlist);

    pListEmbed.addFields({name: "Player", value: `**${playerlist}**` + " ", inline: true})

    }else{
        message.channel.send(pListEmbed)}
}


client.once('ready', () => {
    console.log('Ready!');
});


client.on('message', message => {
    if (!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/);
    const command = args.shift().toLowerCase();

    if (command === 'join') {
        joinpug(message);
    } else if(command=== `fireteam`){
        message.channel.send(pListEmbed);
    }

});


client.login('');
const Discord=require('Discord.js');
const{prefix,token}=require('./config.json');
const{default:Collection}=require('@discordjs/Collection');
const client=new Discord.client();
常量playerlist=[];
const pListEmbed=new Discord.MessageEmbed()
.setColor(“#3CB371”)
.setTitle('RAID'))
addFields先生(
{name:'Fireteam',value:“已加入的玩家:”,内联:true}
)
函数joinpug(消息){
如果(playerlist.length{
console.log('Ready!');
});
client.on('message',message=>{
如果(!message.content.startsWith(prefix)| | message.author.bot)返回;
const args=message.content.slice(prefix.length.split(+/);
const命令=args.shift().toLowerCase();
如果(命令=='join'){
joinpug(信息);
}else if(命令==`fireteam`){
message.channel.send(pListEmbed);
}
});
client.login(“”);

很抱歉,如果这是一个简单的问题,我对JS很陌生。

如果我没有弄错的话,您的问题是重复的值,快速解决方法是在您的
joinpug上使用
Set

function joinpug(message) {
    if(playerlist.length <= 5){
    playerlist = playerlis.push(message.author.username)
    playerlist = [...new Set(playerlist)] ;
    console.log(playerlist);

    pListEmbed.addFields({name: "Player", value: `**${playerlist}**` + " ", inline: true})

    }else{
        message.channel.send(pListEmbed)}
}
函数joinpug(消息){

如果(playerlist.length每次创建一个新字段时,您都要添加
playerlist
作为字段的值,因此它会添加整个数组,那么您应该像这样添加作者的姓名

pListEmbed.addFields({name:“Player”,值:`**${message.author.name}**++',内联:true})

是一张嵌入的图片,如果有帮助,谢谢你的回答。当我尝试你的回答时,它会给我一个错误,上面写着
playerlist=playerlist.push(message.author.username)TypeError:Assignment to constant variable.
(如果你对如何解决这个问题有更多想法,我将不胜感激)只需确保将
const playerlist
更改为
let playerlist