否则在嵌套后不工作否则失败

时间:2018-03-20 13:15:13

标签: javascript html

我正在对字符串对进行一些条件连接。如果不满足条件,则应在两者之间添加空格 以下是我的较大代码的一小部分,但复制了我的问题

a = "ai";
b = "b";
res = "";
if (a.match(/ai$/)) 
          {
            if (b.match(/^ā/) || b.match(/^a/) ||
                b.match(/^i/) || b.match(/^ī/) ||
                b.match(/^u/) || b.match(/^ū/) ||
                b.match(/^e/) || b.match(/^o/) ||
                b.match(/^ṛ/))
                {
                  res = a.slice(0, -1) + 'a ' + b
                }
          }
else
   res = a+ ' ' + b

结果应为ai b 但是我得到了''

我做错了什么?

2 个答案:

答案 0 :(得分:2)

else移到第一个if内,以便在不满足内部else时触发if



a = "ai";
b = "b";
res = "";
if (a.match(/ai$/)) 
{
  if (b.match(/^ā/) || b.match(/^a/) ||
      b.match(/^i/) || b.match(/^ī/) ||
      b.match(/^u/) || b.match(/^ū/) ||
      b.match(/^e/) || b.match(/^o/) ||
      b.match(/^ṛ/))
      {
        res = a.slice(0, -1) + 'a ' + b
      }
      else{
        res = a+ ' ' + b
      }

}

console.log(res);




答案 1 :(得分:1)

嵌套的if不会转到其他地方,例如:

if (1 === 1) {
    if (1 === 2) {
       console.log(1);
    }
}
else {
    console.log(2);
}

在这种情况下,else语句永远不会触发。

在我看来,你需要做的只是组合if语句:

a = "ai";
b = "b";
res = "";
if (a.match(/ai$/) && (b.match(/^ā/) || b.match(/^a/) ||
                b.match(/^i/) || b.match(/^ī/) ||
                b.match(/^u/) || b.match(/^ū/) ||
                b.match(/^e/) || b.match(/^o/) ||
                b.match(/^ṛ/))) {
    res = a.slice(0, -1) + 'a ' + b;
}
else {
   res = a + ' ' + b;
}

请注意额外的"("&&&&&&&&&&&&&&&&&&&&&&&amp