javascript - 最大测量的验证逻辑

标签 javascript typescript

我们有 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/

相关文章:

reactjs - 在 Typescript 中,如何确保 React 子组件属于特定类型

Javascript switch case - 导致错误的默认选项

javascript - 如何使用Bloodhound建议引擎? (多属性对象在本地传递)

angular - 在 Angular 6 中创建自定义管道以返回基于数组的值

javascript - (Angular2) JSON数据(http.get())未定义,数据未在组件中更新

javascript - TypeScript 中的 Angular Material 示例 : Chips

javascript - 当我单击它们然后将该数据传递到我的变量时如何获取特定树节点的 ID

javascript - 鼠标悬停不起作用?

javascript - 多个成对导航元素的悬停事件

angular - 如何专注于 Angular 中的输入