繁体   English   中英

JavaScript检查三个值是否在2的公差范围内相等

[英]Javascript Check if three values are equal within tolerance of 2

我想检查3个RGB值是否基本相等,但有时无论哪种方式它们的值都是1或什至2,所以不是那么简单。 因此90,90,90应该等于90,88,90

在一分钟内,我想到的最好的东西是:

if (r != g && r != b) {
  if ((r != b && r != (b - 1))) {
    // etc
  }
}


Expected output:
91,90,90 = true
93,89,93 = false
91,90,89 = true

您可以在数组上使用every() ,并检查每个最小值(或最大值)的绝对差b / w小于2或等于2

 const checkRBG = arr => { let min = Math.min(...arr); return arr.every(x => Math.abs(min-x) <=2); } const tests = [ [91,90,90], [93,89,93], [91,90,89], [90,88,92] ] tests.forEach(x => console.log(checkRBG(x))) 

做对了

如果要执行if()语句,请执行以下操作:

var foo = 1;

var baz = true;

var bar = "Hello";

// Not equals (abstract equality)

if(foo !== 2) {

    console.log('Not 2');

}

// Equals (abstract equality)

if(baz == "false") {

    console.log('false!');

}

// Equals (strict equality)

if(bar===new String('Hello')) {

    console.log('Hello as a new String!');

} /* Not equals (strict equality) */ else if(bar==="Hello") {

    console.log('Hello as a string');

}

不是 !==

实际上,我只想说“不要使用=但要使用===== ”(下面的解释)

说明

抽象平等

==返回true如果有EXCEPT 类型的平等任何平等

例如..

  • console.log(1 == "1"); // Output: true
  • console.log(1 == true); // Output: true
  • console.log("foo" == new String('foo')); // Output: true

严格平等

===如果有任何不等式(实际上是任何不等式),则返回false

例如..

  • console.log(1 === "1"); // Output: false
  • console.log(1 === true); // Output: false
  • console.log("foo" === new String('foo')); // Output: false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM