Javascript 如何拆分命令

Javascript 如何拆分命令,javascript,discord.js,Javascript,Discord.js,所以我有一个poll命令,它将&poll[pollEvent][agreeStatement][discoverstatement] 这是我的密码 if (command === 'poll') { let pollMessage = args[0] let aggree = args[1]; let disagree = args[2]; const agreeEmoji = '<a:verified:75365428733

所以我有一个poll命令,它将
&poll[pollEvent][agreeStatement][discoverstatement]

这是我的密码

if (command === 'poll') {
        let pollMessage = args[0]
        let aggree = args[1];
        let disagree = args[2];
        const agreeEmoji = '<a:verified:753654287338569778>'
        const disagreeEmoji = '<:no:753654286134542447>'
        if (!pollMessage) return message.reply("What are you going to poll?")
        if (!aggree) return message.reply('Please insert the aggree statement')
        if (!disagree) return message.reply("Please insert the disagree statement")
        const pollEmbed = new Discord.MessageEmbed()
        .setTitle('Poll!')
        .setColor('#00FF2A')
        .addFields(
            { name: pollMessage, value: `
            <a:verified:753654287338569778> ${aggree}
            
            <:no:753654286134542447> ${disagree}`}
        )
        
        message.delete();
        let msg = await message.channel.send(pollEmbed);
        await msg.react('753654287338569778')
        await msg.react('753654286134542447')
 
        
        const filter = (reaction, user) => reaction.emoji.id === '753654287338569778' || reaction.emoji.id === '753654286134542447'

        const result = await msg.awaitReactions(filter, {time: 5000}).then((collected) => {
            if (msg.reactions.cache.get('753654287338569778').count-1 <= 0 || msg.reactions.cache.get('753654286134542447').count-1 <= 0) return message.channel.send("No one voted sorry this poll is aborted")
            let resutEmbed = new Discord.MessageEmbed()
            .setTitle('Voting Complete!')
            .setColor('#00FF2A')
            .addFields( 
                {name: pollMessage, value: `<a:verified:753654287338569778> ${aggree} => ${collected.get('753654287338569778').count-1}
                
                <:no:753654286134542447> ${disagree} => ${collected.get('753654286134542447').count-1}`}
            )
        msg.edit(resutEmbed)
        msg.reactions.removeAll()
        })
        


    }
if(命令=='poll'){
让pollMessage=args[0]
设aggree=args[1];
让不同意=args[2];

const agreemoji='

看起来像是
数组解构
rest操作符
ES6s功能将方便您的命令

您可以通过执行以下操作来“解构”您的
args
数组元素,并为每个元素指定一个变量名:

//其中:let[word1,word2,…rest]=args
//同:
让[word1,word2,…rest]=[应该”,“我”,“去”,“外面”,“是”,“否];
通过执行此操作,您可以开始使用命令条目,无论这些条目的长度如何。此处
rest
也声明为变量,并包含未命名元素的“rest”:

console.log(rest);
//将提示•>['go','Out','yes','no']
如果要启用每次轮询的个性化响应,您的实现可以升级到:

let[…问题,选项a,选项b]=args;
在这种情况下,这很好,不过我建议如果您只是想实现
yes/no
poll,就不要将命令的答案选项个性化

如果将来您希望提供两个以上的答案选项,您可以设计命令,在特殊字符后检测它们,如:

&poll What's the coolest pet: dog, cat, panda
(特殊字符为
此处) 您还可以考虑执行<代码>数组.Cube()/<代码>方法和<代码> String .Strut.()/Case>处理命令条目,作为<代码>…REST < /COD>操作方式只适用于单个措辞的回答选项:<代码>确定/NA< /COD>,如果您得到如下条目,错误将出现:

&poll Should I go outside?: sure thing nah

由于
选项a
将包含
东西
/和
选项b
包含
nah

我认为我们需要看到更多的上下文,比如在args中使用的传递的参数。