或逻辑运算符无法正常运行javascript

我的代码当前将检查输入是否有效,而我使用的是or运算符。

if (tosell !== 'xmr' || tosell !== 'eth' || tosell !== 'btc') {
              message.channel.send('Unknown currency. Valid currencies are: xmr, eth, btc. Example: $sell xmr')
            } else {
              message.channel.send('How much '+tosell+' would you like to sell?')
              const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, { time: 5000 });
                collector.on('collect', async message => {
                 amount = parseInt(message.content)
                 if (amount === 'all') {
                   realamount = score.xmr
                 } else if (amount != 'all') {
                   console.log(score.xmr)
                   realamount = amount
                 }
                 if (tosell === 'xmr') {
                   if (userscore.xmr >= amount) {
                     var cg = await fetch('https://api.coingecko.com/api/v3/coins/monero?tickers=true&market_data=true&community_data=false&developer_data=false&sparkline=false').then(response => response.json());;
                     const xmrprice = cg.market_data.current_price.usd
                     const toAdd = realamount*xmrprice
                      userscore.xmr -= amount
                      userscore.usd += toAdd
                      const embed = new Discord.MessageEmbed()
                          .setColor('#7FDB7F')
                          .setTitle('You sold '+amount+'XMR for $'+toAdd)
                          .setAuthor('Successful Sell', 'https://cdn.discordapp.com/emojis/710590499991322714.png?v=1')
                          message.channel.send(embed)
                      client.setScore.run(userscore);
                   } else {
                     message.channel.send("You don't have enough Monero to sell!")
                   }
                   }
                 })
            }

但是当它这样做时由于某种原因它不能识别/工作,即使我输入值xmr,它也会执行我定义的“其他”。如果有人知道我对or运算符做错了,请告诉我

评论
  • _堅=強
    _堅=強 回复

    Because it's !== - that's "not equal". Use === for equal:

    if (tosell === 'xmr' || tosell === 'eth' || tosell === 'btc')
    

    Also you can use includes for more concise syntax:

    if (['xmr', 'eth', 'btc'].includes(tosell))