discord.js如何设置Embed在两种指定颜色间选择显示
问题原因
.setColor('YELLOW' || 'RED')始终渲染黄色,和你是否重启机器人、重存文件没有关系,本质是对JavaScript||(逻辑或)运算符的运行逻辑存在误解:
||采用短路求值规则,从左到右依次判断运算项,遇到第一个真值就直接返回该值,不再执行后续判断- 非空字符串在JavaScript中属于真值类型,因此
'YELLOW' || 'RED'这个表达式永远只会返回第一个运算项'YELLOW',完全不会读取到后面的'RED'
实现方案
根据你需要的切换规则,选择对应写法即可:
随机二选一
如果需要每次发送Embed时随机在黄、红两色中选择,把可选颜色存入数组后随机取值即可,示例代码:
// 定义可选颜色池 const colorPool = ['YELLOW', 'RED']; // 生成0到颜色池长度-1范围内的随机整数作为下标,取出对应颜色 const pickColor = colorPool[Math.floor(Math.random() * colorPool.length)]; // 传入选中的颜色 .setColor(pickColor)
按条件切换
如果需要满足特定规则时显示对应颜色,用条件判断返回目标颜色即可,示例代码:
// 示例判断逻辑:操作成功显示黄色,操作失败显示红色,替换成你自己的业务判断即可 const operationSuccess = true; const pickColor = operationSuccess ? 'YELLOW' : 'RED'; .setColor(pickColor)
内容的提问来源于stack exchange,提问作者patelheet30
相关产品推荐
相关产品推荐

