尽管满足条件,但仍未执行For Loop中的IF语句

时间:2020-01-10 19:17:19

标签: javascript for-loop if-statement

我一直在准备进行训练营面试,因此我正在练习创建一个使用ROT13密码对字符串进行密码处理的程序。对于不熟悉的人,下面的图表显示了它的工作方式:

ROT13

我的代码面临的问题是,当我遍历for循环时,尽管满足条件,但每次迭代获得的结果都不会通过IF语句。如果有任何优化该代码的建议,我也将不胜感激!

这都是很新的东西,令人沮丧,但同时又很有趣!

function jCheck(num){
  if (num >= 26){
    return num - 26
  }
  else {
    return num
  }
}

function flipStr(str){
  const upperCheck = /[A-Z]/g
  const lowerCheck =/[a-z]/g
  const upperAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  const lowerAlpha = "abcdefghijklmnopqrstuvwxyz"
  let newStr = []
  for (let i = 0; i < str.length; i++){
    console.log(str[i],lowerCheck.test(str[i]))
    if (lowerCheck.test(str[i]) === true){
      console.log('lower ran')
      let j = lowerAlpha.indexOf(str[i]) + 13
      j = jCheck(j)
      newStr.push(lowerAlpha[j])
    }
    else if (upperCheck.test(str[i]) === true){
      let j = upperAlpha.indexOf(str[i]) + 13
      j = jCheck(j)
      newStr.push(upperAlpha[j])
    }
    else{
      console.log('else ran')
      newStr.push(str[i])
    }
  }
  return newStr.join("")
}

var input = 'aaaaaa!'
console.log(flipStr(input)) // outputs 'nanana!' instead of 'nnnnnn!'

0 个答案:

没有答案