Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将随机设置的单词值分配给变量Javascript?(不和谐JS v12H)_Javascript_Random_Bots_Discord_Discord.js - Fatal编程技术网

如何将随机设置的单词值分配给变量Javascript?(不和谐JS v12H)

如何将随机设置的单词值分配给变量Javascript?(不和谐JS v12H),javascript,random,bots,discord,discord.js,Javascript,Random,Bots,Discord,Discord.js,我想用我的discord机器人做一个猜谜游戏,当我输入“!猜谜游戏”时,它会反应三个表情:1️⃣,2.️⃣,3.️⃣. 然后它随机选择其中一个表情符号,并将其分配给变量“answer”。如果我单击与设置为“answer”变量的表情符号对应的表情符号,它会说“恭喜!你猜对了!”之类的话,如果没有,它会说“哇!祝你下次好运!”之类的话 这就是我的代码: if (msg.content === "!guessing game") { const filter = (

我想用我的discord机器人做一个猜谜游戏,当我输入“!猜谜游戏”时,它会反应三个表情:1️⃣,2.️⃣,3.️⃣. 然后它随机选择其中一个表情符号,并将其分配给变量“answer”。如果我单击与设置为“answer”变量的表情符号对应的表情符号,它会说“恭喜!你猜对了!”之类的话,如果没有,它会说“哇!祝你下次好运!”之类的话

这就是我的代码:

if (msg.content === "!guessing game") { const filter = (reaction, user) => { return ['1️⃣', '2️⃣', '3️⃣'].includes(reaction.emoji.name) && user.id === msg.author.id; }; msg.react('1️⃣'); msg.react('2️⃣'); msg.react('3️⃣'); msg.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] }) .then(collected => { const reaction = collected.first(); var num = Math.floor(Math.random() * 3) + 1; if (num === "1"){ var answer = "1️⃣" } else{ if (num === "2"){ var answer = "2️⃣" } else{ if (num === "3"){ var answer = "3️⃣" } else{ console.log("Random num failed") } } } if (reaction.emoji.name === answer) { msg.reply('You did it!'); } else{ msg.reply('Better luck next time!'); } }) 如果(msg.content==“!猜谜游戏”){ 常量过滤器=(反应,用户)=>{ 返回[1]️⃣', '2.️⃣', '3.️⃣'].包括(reaction.emoji.name)&&user.id==msg.author.id; }; msg.react('1️⃣'); msg.react('2️⃣'); 味精反应('3️⃣'); msg.aittreactions(过滤器,{max:1,时间:60000,错误:['time']}) 。然后(收集=>{ const reaction=收集的.first(); var num=Math.floor(Math.random()*3)+1; 如果(数值=“1”){ var answer=“1️⃣" } 否则{ 如果(数字=“2”){ var answer=“2️⃣" } 否则{ 如果(数字=“3”){ var answer=“3️⃣" } 否则{ console.log(“随机数失败”) } } } if(reaction.emoji.name==答案){ msg.reply(“你做到了!”); } 否则{ msg.reply(‘下次好运!’); } }) 当然,这就是我的控制台所说的:“随机数失败” 我有一种感觉,选择一个随机表情符号,而不是一个随机数字,然后将其转换为表情符号,会更有效

有人知道如何解决这个问题吗


(如果您能使其不区分大小写,我也会非常感激,因为我似乎无法理解。)

您应该在
if(num==“1”)
语句中使用
==
,而不是
==“1”)
语句,或者删除数字周围的双引号-
if(num==“1)
。 这是因为
==
运算符更严格-它表示比较值和值的类型。
Math.random()
函数返回
number
类型的值,所以您将
number
string
进行比较:

console.log(3 == "3"); // will return true
console.log(3 === "3"); // will return false
更多信息请点击此处:

您还可以使用以下方法缩短代码:

const number=['1️⃣','2.️⃣','3.️⃣'];
设randNum=numes[Math.floor(Math.random()*numbers.length)];
//输出:'1️⃣' 还是'2️⃣' 还是'3️⃣' :)

啊。谢谢。我在处理变量时会记住这一点。但是你知道如何处理大小写不敏感的问题吗?当我说!猜谜游戏,它不起作用,所以我需要使它转换成小写。@DatoneBasdude使用:
你的变量。toLowerCase();
:)@DatoneBasdude没问题:)请考虑在使用它们旁边箭头的有帮助的答案。