我们有 3 个接受长度、宽度和高度的文本框
长度、宽度或高度均不能大于 50
长度、宽度或高度均不能大于 45
长度、宽度或高度均不能大于 65
所以可以有以下组合
45*50*65
50*45*65
65*45*50
我正在用 typescript 编写逻辑,但找不到方法。
if (txtWidth.val() > 45 && txtLength.val() < 65 && txtHeight.val() < 50)
string error = "you exceeded measurement"
逻辑不完整,但我需要好的方法来解决这个问题,否则任何命中都会有帮助
最佳答案
您可以采取这三种措施,按照大小对它们进行排序,然后应用条件:
const sizes: number[] = [width, height, length].sort();
if(sizes[0] >= 45 || sizes[1] >= 50 || sizes[2] >= 65)
alert("incorrect");
<小时/>
或者,您可以根据所有范围计算每个值,例如:
const check = (v: number) => +(v < 45) + +(v < 50) + +(v < 65);
如果传递的值低于所有范围,则返回 3;如果大于 45,则返回 2;如果大于 50,则返回 1;如果大于 65,则返回 0。
那么所有检查的倍数必须大于或等于 6 (3 * 2 * 1)
if(check(width) * check(height) * check(length) < 6)
alert("invalid");
关于javascript - 最大测量的验证逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151095/