Javascript 试图编写一个服务器内部笑话,但不起作用如何修复它?

Javascript 试图编写一个服务器内部笑话,但不起作用如何修复它?,javascript,discord,discord.js,Javascript,Discord,Discord.js,因此,在我的服务器中有一个内部笑话,有人说9+2=12,所以我正在对我的机器人进行编码,所以当有人说,cal 9+2时,机器人会显示一个嵌入式,上面写着“计算器”作为标题,答案是12,效果很好,但任何其他计算都不起作用,代码如下: const Math = require("mathjs"); module.exports = { name: "cal", description: "Calculates something&q

因此,在我的服务器中有一个内部笑话,有人说9+2=12,所以我正在对我的机器人进行编码,所以当有人说
,cal 9+2
时,机器人会显示一个嵌入式,上面写着“计算器”作为标题,答案是12,效果很好,但任何其他计算都不起作用,代码如下:

const Math = require("mathjs");

module.exports = {
    name: "cal",
    description: "Calculates something",

    async execute (Client, message, args, Discord){
        const lol = '12'
        const LOL = '9 + 2'

        if(!args[0]) return message.channel.send("Please provide a question to solve");

        let resp;

        try{
            resp = Math.evaluate(args.join(" "))
        } catch (e) {
            return message.channel.send("Please provide a **valid** question to answer")
        }
        if(args[0] = '9+2' || '9 + 2' || '9+ 2' || '9 +2'){
            const embed = new Discord.MessageEmbed()
            .setColor("RANDOM")
            .setTitle("Calculator")
            .addField("Question", `\`\`\`css\n${LOL}\`\`\``)
            .addField("Answer", `\`\`\`css\n${lol}\`\`\``)

            message.channel.send(embed);
        }
        else{
            const embed = new Discord.MessageEmbed()
            .setColor("RANDOM")
            .setTitle("Calculator")
            .addField("Question", `\`\`\`css\n${args.join(" ")}\`\`\``)
            .addField("Answer", `\`\`\`css\n${resp}\`\`\``)

            message.channel.send(embed);
        }
    }
}

脚本没有if函数,数学部分工作得很好!但是笑话并不存在。

你的问题在于这句话:

if(args[0]=“9+2”| | |“9+2”| |“9+2”| |“9+2”){

首先,
=
仅用于赋值,例如
const foo='bar'
。要进行比较,请使用三重相等,例如
'foo'=='foo'

其次,
x===y | | | z
实际上并不做您认为它做的事情。逻辑OR运算符(
|
)两侧的语句将始终完全单独计算。上述情况并不意味着“
x
等于
y
z
”,而是,“
x
等于
y
,或者
z
是真实的”

//这意味着
//永远都会回到现实。
//如果你把这两种说法分开,
//第二个永远是真实的,因为
//一根弦本身就是真实的
if(true==false | |“你好”){
log('It passed');
};
这里有一种方法(我不知道它是否有效……):


我知道有很多方法可以做得更好,但这是我的。

你可能需要某种形式的解析器。这段视频将是一个很好的开始。你可以添加整个if函数以便我可以看到你做了什么吗?只需替换
if(args[0]=“9+2”|“9+2”|“9+2”|“9+2”|“9+2”){
使用我描述的其中一个选项addly我尝试了所有选项,但它们都不起作用,只有当我一起做9+2时才起作用,任何其他像9+2这样做的方法都不起作用,这可能是因为您只是在比较
参数[0]
。如果你做了
9+2
,它将是
9
。如果你做了
9+2
,它将是
9+
。你需要编辑你的代码来解释这一点(例如,使用
args.join(“”)
那么类似的东西是什么?
如果(args.join)(“”)[0]==“9+2”| args.join(“”)[0]==“9+2”;“args.join”(“”)[0]=“9+2”]“| | args.join(“”)[0]==“9+2”){
    const hi = [ ',cal 9+12', ',cal 9 +12', ',cal 9+ 12']
    if(hi.includes(message.content.toLowerCase())) {
  

        const embed = new Discord.MessageEmbed()
            .setColor("RANDOM")
            .setTitle("Calculator")
            .addField("Question", `\`\`\`css\n${LOL}\`\`\``)
            .addField("Answer", `\`\`\`css\n${lol}\`\`\``)

            return message.channel.send(embed)

    }