[英]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.