Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 压缩If条件_Javascript - Fatal编程技术网

Javascript 压缩If条件

Javascript 压缩If条件,javascript,Javascript,有没有这样的方法来压缩if语句中的条件块? 从代码中可以看出,itemKey是一个变量。我将第一个字母设置为小写,以便将其与另一个变量letter匹配。下面的工作非常完美,但我想清理一下。我能把&后面的所有|拉到一起,把所有的数字0-9都包含进去吗?这是充当字符串,而不是整数 firstLetterLower = itemKey.charAt(0).toLowerCase(); if(firstLetterLower==letter || ( letter=='number' &&

有没有这样的方法来压缩
if
语句中的条件块? 从代码中可以看出,
itemKey
是一个变量。我将第一个字母设置为小写,以便将其与另一个变量
letter
匹配。下面的工作非常完美,但我想清理一下。我能把
&
后面的所有
|
拉到一起,把所有的数字0-9都包含进去吗?这是充当
字符串
,而不是
整数

firstLetterLower = itemKey.charAt(0).toLowerCase();
if(firstLetterLower==letter || (
   letter=='number' && (
      firstLetterLower=='0' || firstLetterLower=='1' || firstLetterLower=='2' || 
      firstLetterLower=='3' || firstLetterLower=='4' || firstLetterLower=='5' || 
      firstLetterLower=='6' || firstLetterLower=='7' || firstLetterLower=='8' || 
      firstLetterLower=='9'
   ))) {

您可以将这些测试替换为

firstLetterLower.match(/[0-9]/)


(firstLetterLower>=0&&firstLetterLower您可以将这些测试替换为

firstLetterLower.match(/[0-9]/)

(firstLetterLower>=0&&firstLetterLower尝试使用正则表达式:

firstLetterLower.match(/^[0-9]/)
尝试使用正则表达式:

firstLetterLower.match(/^[0-9]/)

使用正则表达式,可以执行以下操作:

firstLetterLower = itemKey.charAt(0).toLowerCase();

if(firstLetterLower == letter || firstLetterLower.match(/^[0-9]$/) ){
}
这将检查指定的
字母以及0和9之间的匹配

但是,如果您不想使用正则表达式(可能会有开销?在这里,使用1个非常简单的正则表达式并不明显),您可以执行以下操作:

firstLetterLower = itemKey.charAt(0).toLowerCase();

if(firstLetterLower == letter || (firstLetterLower >= 0 && firstLetterLower <= 9)){
}
firstLetterLower=itemKey.charAt(0.toLowerCase();

如果使用正则表达式(firstLetterLower==letter | |(firstLetterLower>=0&&firstLetterLower),则可以执行以下操作:

firstLetterLower = itemKey.charAt(0).toLowerCase();

if(firstLetterLower == letter || firstLetterLower.match(/^[0-9]$/) ){
}
这将检查指定的
字母以及0和9之间的匹配

但是,如果您不想使用正则表达式(可能会有开销?在这里,使用1个非常简单的正则表达式并不明显),您可以执行以下操作:

firstLetterLower = itemKey.charAt(0).toLowerCase();

if(firstLetterLower == letter || (firstLetterLower >= 0 && firstLetterLower <= 9)){
}
firstLetterLower=itemKey.charAt(0.toLowerCase();

如果(firstLetterLower==letter | | |)(firstLetterLower>=0&&firstLetterLower您可以使用正则表达式和您所拥有的内容的组合。我可能会将其放入函数中:

function isMatch(itemKey, letter) {
    firstLetterLower = itemKey.charAt(0).toLowerCase();
    if (firstLetterLower == letter) return true;

    if (letter == 'number'){
       if (firstLetterLower.match(/[0-9]/))
         return true;
        }
     return false;
}


alert("1:" + isMatch('item', 'i'));
alert("2:" +isMatch('1234567', 'number'));
alert("3:" +isMatch('abc','number'));
alert("4:" +isMatch('123','a'));

您可以使用正则表达式和您拥有的东西的组合。我可能会将其放入函数中:

function isMatch(itemKey, letter) {
    firstLetterLower = itemKey.charAt(0).toLowerCase();
    if (firstLetterLower == letter) return true;

    if (letter == 'number'){
       if (firstLetterLower.match(/[0-9]/))
         return true;
        }
     return false;
}


alert("1:" + isMatch('item', 'i'));
alert("2:" +isMatch('1234567', 'number'));
alert("3:" +isMatch('abc','number'));
alert("4:" +isMatch('123','a'));

你考虑过正则表达式吗?
(firstLetterLower>='0'&&firstLetterLower>你考虑过正则表达式吗?
(firstLetterLower>='0'&&firstLetterLower)谢谢,正则表达式是我要找的。谢谢,正则表达式是我要找的。正是我要找的。谢谢