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

JavaScript实现:检查三个RGB值是否在±2公差范围内相等

解决RGB值基本相等的判断问题

嘿,我看你在纠结怎么判断三个RGB值是否基本相等,允许±1或±2的偏差,原来的嵌套if逻辑确实太绕了,很容易漏判情况,我给你一个更清晰可靠的方案!

核心思路

我们的目标是确保三个值中任意两两之间的差值绝对值不超过2——只要满足这个条件,就符合你说的“基本相等”要求。

代码实现(以JavaScript为例)

function areRGBValuesSimilar(r, g, b) {
  const maxAllowedDifference = 2;
  // 检查每一对值的差值是否都在允许范围内
  return Math.abs(r - g) <= maxAllowedDifference &&
         Math.abs(r - b) <= maxAllowedDifference &&
         Math.abs(g - b) <= maxAllowedDifference;
}

如果是Python的话,逻辑完全一致:

def are_rgb_values_similar(r, g, b):
    max_allowed_diff = 2
    return abs(r - g) <= max_allowed_diff and \
           abs(r - b) <= max_allowed_diff and \
           abs(g - b) <= max_allowed_diff

验证你的示例

  • 输入91,90,90:两两差值为1、1、0,都≤2 → 返回true
  • 输入93,89,93:93和89的差值是4,超过2 → 返回false
  • 输入91,90,89:91和89的差值是2,刚好符合要求 → 返回true

为什么比原来的逻辑好

你原来的嵌套if很容易遗漏判断(比如没考虑g和b之间的差值),而且逻辑可读性极差。这个方案直接把需求转化为明确的条件判断,既直观又不会漏判任何情况,后续维护也方便。

内容的提问来源于stack exchange,提问作者Hasen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:28:44