首页 > 解决方案 > Discord.js 如果功能问题

问题描述

我在这里有这个简单的代码:

let stars = args[0]
        if(stars === 0) {
            let starsEmoji = `0 stars`
        } else if(stars == 1) {
            let starsEmoji = `1 stars`
        } else if(stars == 2) {
            let starsEmoji = `2 stars`
        }else if(stars == 3) {
            let starsEmoji = `3 stars`
        }else if(stars == 4) {
            let starsEmoji = `4 stars`
        }else if(stars == 5) {
            let starsEmoji = `5 stars`
        } 

我在这里尝试做的是在 arg[0] 等于 0 到 5 时定义 starsEmoji 但问题是即使 arg[0] 是一个数字,当尝试在另一个代码行中使用 starsEmoji 时它也会给我错误它给了我错误ReferenceError: starsEmoji is not defined

我在代码的开头

if(isNaN(args[0])) return 
if(args[0] > 5) return

确保它是一个数字,不太确定这有什么问题

标签: javascriptdiscord.js

解决方案


有一个更简单的解决方案,但是首先要检查的是确保starsEmoji在您计划使用它的范围内。确保这一点的最简单方法是在全局范围内定义它。

而不是这样做else if ... else if ... else if,只需使用模板文字来动态连接您的字符串。

if(isNaN(args[0])) return 
if(args[0] > 5 || args[0] < 0) return

// Define Variable outside of any scope
let starsEmoji = '';

// Instead of stacking else-if's, use template literals
starsEmoji = `${args[0]} stars`;

推荐阅读