Javascript TypeError:无法读取属性';包括';未定义的类型:在discord.js中使用命令数组

Javascript TypeError:无法读取属性';包括';未定义的类型:在discord.js中使用命令数组,javascript,discord.js,Javascript,Discord.js,制作一个discord机器人可能会被标记为重复,但我找不到任何东西可以解决这类问题 使用此代码: client.on('message', message => { if (!message.content.startsWith(prefix) || message.author.bot) return; var args = message.content.slice(prefix.length).split(' '); const command = args.

制作一个discord机器人可能会被标记为重复,但我找不到任何东西可以解决这类问题

使用此代码:

client.on('message', message => {
    if (!message.content.startsWith(prefix) || message.author.bot) return;
    var args = message.content.slice(prefix.length).split(' ');
    const command = args.shift().toLowerCase();
    if(command === 'reactpoll' || command === 'rpoll' || command === 'reactionpoll') {
        if (!args.length) {
            return message.channel.send(`You didn't provide any arguments, ${message.author}! Use &rpoll (title) (Main Body)`);
        } else {

            if(!args[0].includes('(')) {
                message.channel.send('Incorrect Syntax: You need a \'(\'');
            } else {
                for(var e=0; e<args.length; e++) {
                    if(args[e].includes(')')) {
                        break;
                    }
                }
                //specifically here 
                if(!args[e].includes(')')) {
                    message.channel.send('Incorrect Syntax: You need a \')\'')
                    .catch();
                } else { 
                e++;
                if(!args[e].includes('{')) {
                    message.channel.send('Incorrect Syntax: You need a \'{\'');
                } else {
                    for(var e; e<args.length; e++) {
                        if(args[e].includes('}')) {
                            break;
                        }
                    }
                    e = args.length - 1;
                    if(!args[e].includes('}')) {
                        message.channel.send('Incorrect Syntax: You need a \'}\'');
                    } else {
                        var bigBoiString = args.join(' ');
                        var e1 = bigBoiString.replace("{", "");
                        var e2 = e1.replace("}", "");
                        var e3 = e2.replace("(", "**");
                        var e4 = e3.replace(")", "**:");
                        message.channel.send(e4);
                    }
                    }
                }
            }
        }
    }
});

我假设这意味着变量e没有分配字符串,但是当我使用console.log(e)时,它会给我一个定义的值。此外,假设我运行命令&rpoll(嘿嘿{嘿嘿},我只需输入数字2而不是e,代码运行很好。不知道我缺少了什么。

事实上,
e
不是未定义的,并不意味着
args[e]
不会未定义。问题是,如果此循环:

                for(var e=0; e<args.length; e++) {
                    if(args[e].includes(')')) {
                        break;
                    }
                }

for(var e=0;eThanks太多了!可能会从Stackoverflow中删除此内容,因为我忽略了一个错误,这其实不是一个问题,但还是要感谢您。
                for(var e=0; e<args.length; e++) {
                    if(args[e].includes(')')) {
                        break;
                    }
                }