在数值循环中附加条件(JavaScript)

时间:2011-02-07 03:51:30

标签: javascript loops conditional-statements

我有四个IF语句,是否可以将其重写为更整齐的循环,其中[i]可能是'4'或更高。

if (typed.length == 1 && c.charAt(0) == typed[0]) { 
    //something ; 
    return false;
}

if (typed.length == 2 && c.charAt(0) == typed[0] 
    && c.charAt(1) == typed[1]) {  
    //something ; 
    return false;
}

if (typed.length == 3 && c.charAt(0) == typed[0] 
    && c.charAt(1) == typed[1] && c.charAt(2) == typed[2]) {  
    //something ; 
    return false;
}

if (typed.length == 4 && c.charAt(0) == typed[0] 
    && c.charAt(1) == typed[1] && c.charAt(2) == typed[2] 
    && c.charAt(3) == typed[3]) {  
    //something ; 
    return false;
}

4 个答案:

答案 0 :(得分:3)

在我看来,这样的事情应该是这样的:

if (c.substr(0, typed.length) == typed)

如果typed.join()是数组,则可能typed

答案 1 :(得分:1)

试试这个

for(var x=0; x<typed.length; x++)
{
   if(c.chatAt(x)!=typed[x]) { return false; }
}
return true;

答案 2 :(得分:0)

for (var i=1; i<=4; ++i){
  if (typed.length!=i) continue;
  var OK = true;
  for (var j=0;j<i;++j){
    OK = OK && (c.charAt(0)==typed[j]);
  }
  if (OK){
    // something
    return false;
  }
}

答案 3 :(得分:0)

忘记两个嵌套循环,或假设ctyped是“有序”的,只需查找c中的字符

for (var i=0; i<typed.length; i++) {
   if (c.indexOf(typed.charAt(i)) >= 0) {  // or c.indexOf(typed.charAt(i)) == i
      return false;
   }
}
return true;