You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:39:20