Javascript Discord.JS中的Poll命令有问题。你怎么解决这个问题?
我一直在为我的Discord机器人编写一个轮询命令。它位于Discord.JS中,但当我要运行该命令时,它会出现以下错误: 我已经尝试解决这个问题一段时间了,但它仍然解决这个问题。我更改了一些代码行,特别是第65行和第70-80行 代码: 常量选项=[Javascript Discord.JS中的Poll命令有问题。你怎么解决这个问题?,javascript,discord.js,Javascript,Discord.js,我一直在为我的Discord机器人编写一个轮询命令。它位于Discord.JS中,但当我要运行该命令时,它会出现以下错误: 我已经尝试解决这个问题一段时间了,但它仍然解决这个问题。我更改了一些代码行,特别是第65行和第70-80行 代码: 常量选项=[ “将某些问题列为选项的原因是,您将问题定义为args[0],这只是给出的第一个单词。您可以通过循环遍历参数并将看起来不是选项的参数添加到问题中来解决此问题。请参阅下面的示例代码 const args=message.content.trim.s
“将某些问题列为选项的原因是,您将问题定义为args[0],这只是给出的第一个单词。您可以通过循环遍历参数并将看起来不是选项的参数添加到问题中来解决此问题。请参阅下面的示例代码 const args=message.content.trim.split/+/g; //定义问题。。。 让问题=[]; 对于let i=1;i
请注意,您仍然需要检查是否存在问题以及选项是否存在,并按照您的意愿显示任何错误。您可以告诉我args数组的外观吗?我的args数组的外观如下:message.content.match/+?/g;args=args.mapa=>a.replace//g',;const question=args.map a=>a.replace//g',;const questionOptions=message.content.match/+?/g;我指的是args数组的内容。您知道,console.logargs。
const options = [
'The reason some of the question is listed as choices is because you define question
as args[0]
, which is simply the first word given. You can solve this by looping through the arguments and adding those that don't appear to be a choice into the question. See the sample code below.
const args = message.content.trim().split(/ +/g);
// Defining the question...
let question = [];
for (let i = 1; i < args.length; i++) {
if (args[i].startsWith('"')) break;
else question.push(args[i]);
}
question = question.join(' ');
// Defining the choices...
const choices = [];
const regex = /(["'])((?:\\\1|\1\1|(?!\1).)*)\1/g;
let match;
while (match = regex.exec(args.join(' '))) choices.push(match[2]);
// Creating and sending embed...
let content = [];
for (let i = 0; i < choices.length; i++) content.push(`${options[i]} ${choices[i]}`);
content = content.join('\n');
var embed = new Discord.RichEmbed()
.setColor('#8CD7FF')
.setTitle(`**${question}**`)
.setDescription(content);
message.channel.send(`:bar_chart: ${message.author} started a poll.`, embed)
.then(async m => {
for (let i = 0; i < choices.length; i++) await m.react(options[i]);
});