Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 最大测量的验证逻辑_Javascript_Typescript - Fatal编程技术网

Javascript 最大测量的验证逻辑

Javascript 最大测量的验证逻辑,javascript,typescript,Javascript,Typescript,我们有3个文本框,可接受长度、宽度和高度 长度、宽度或高度不能大于50 长度、宽度或高度不能大于45 长度、宽度或高度不能大于65 所以可以有下面的组合 45*50*65 50*45*65 65*45*50 我正在用打字机写逻辑,但找不到方法 if (txtWidth.val() > 45 && txtLength.val() < 65 && txtHeight.val() < 50) string error = "you excee

我们有3个文本框,可接受长度、宽度和高度

长度、宽度或高度不能大于50

长度、宽度或高度不能大于45

长度、宽度或高度不能大于65

所以可以有下面的组合

45*50*65

50*45*65

65*45*50

我正在用打字机写逻辑,但找不到方法

 if (txtWidth.val() > 45 && txtLength.val() < 65 && txtHeight.val() < 50)
    string error = "you exceeded measurement"
if(txtWidth.val()>45&&txtLength.val()<65&&txthheight.val()<50)
字符串错误=“您超出了测量值”

逻辑不完整,但我需要一个很好的方法来解决这个问题,否则任何命中都会有帮助

您可以采取三种措施,按大小排序,然后应用条件:

 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);
const check=(v:number)=>+(v<45)++(v<50)+(v<65);
如果传递的值低于所有范围,则返回3,如果大于45,则返回2,如果大于50,则返回1,如果大于65,则返回0

那么所有检查的倍数必须大于或等于6(3*2*1)

if(检查(宽度)*检查(高度)*检查(长度)<6)
警报(“无效”);

您可以采取以下三种措施,按大小排序,然后应用条件:

 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);
const check=(v:number)=>+(v<45)++(v<50)+(v<65);
如果传递的值低于所有范围,则返回3,如果大于45,则返回2,如果大于50,则返回1,如果大于65,则返回0

那么所有检查的倍数必须大于或等于6(3*2*1)

if(检查(宽度)*检查(高度)*检查(长度)<6)
警报(“无效”);

可能有一种更简洁的方法来实现这一点,但我认为您应该循环每个维度,并将其与您的3个最大值相匹配。我删除了最下面的一个匹配的第一个,这样你就有更多的空间来容纳其他可能小于一个最大值的维度

函数validateVolume(…args){
常量最大值=[45,50,65];
返回参数。每个((维度)=>{
如果(维度===null | |维度===未定义){
返回false;
}
返回maxes.some((max,index)=>{

const match=dimension可能有一种更简洁的方法来实现这一点,但我认为您应该循环每个维度,并将其与您的3个最大值进行匹配。我将删除首先匹配的最低维度,以便为其他维度留出更多空间,这些维度可能小于一个最大值

函数validateVolume(…args){
常量最大值=[45,50,65];
返回参数。每个((维度)=>{
如果(维度===null | |维度===未定义){
返回false;
}
返回maxes.some((max,index)=>{


const match=dimension如果我不知道得更好@Scrimothy这不是什么功课。它在我真实的实时项目中的实际逻辑。不要继续错误的代码语法。我知道语法可能在我发布的代码示例中出错如果我不知道得更好@Scrimothy这不是任何功课。它在我真实的实时项目中的实际逻辑。不要继续错误的代码语法。我知道syntax在我发布的代码示例中可能是错误的。你能告诉我你是如何在typescript中声明常量的,因为这会产生错误吗?我试图在typescript中转换常量检查,比如var check=function(v){return(v<45)+(v<50)+(v<65);};但仍然扔error@james在猜测之前,您应该尝试理解错误消息。typescript可能不喜欢在表达式中隐式使用布尔值作为数字。您可能必须先将它们转换为数字,然后才能添加它们together@Scrimothy你能给我举个演员的例子吗?你能告诉我h吗如何在typescript中声明常量,因为它会产生错误我尝试在typescript中转换常量检查,比如var check=function(v){return(v<45)+(v<50)+(v<65);};但仍然扔error@james在猜测之前,您应该尝试理解错误消息。typescript可能不喜欢在表达式中隐式使用布尔值作为数字。您可能必须先将它们转换为数字,然后才能添加它们together@Scrimothy你能给我举个演员的例子吗?我换了朗在中键入脚本的uagequestion@James您应该能够在typescript中使用上述相同的函数。只需将函数定义更改为
validateVolume(…args:[number,number,number]):布尔值
如果未定义其他两个参数,会发生什么情况。此测试失败console.log(validateVolume(45,undefined,65))@詹姆斯:是的,这只是一条快乐的道路。我已经更新了我的代码片段,以针对未定义和null进行验证。我在中将语言更改为typescriptquestion@James您应该能够对typescript使用上述相同的函数。只需将函数定义更改为
validateVolume(…args:[number,number,number]):boolean
如果其他两个参数未定义,会发生什么情况。此测试失败console.log(validateVolume(45,undefined,65))@James是的,这只是一条快乐的路径。我已更新了代码片段,以根据未定义和null进行验证。