console.log在while循环中不打印

如下函数,不知道为什么,第一层while循环里打印的内容在浏览器显示了,但是第二层的while循环没有打印

var reverseOnlyLetters = function(s) {
  let arr = s.split('')
  let i = 0;
  let j = arr.length-1;
  let reg = /[a-zA-Z]/
  while(true) {
    console.log("这里打印了", i);
      while(!reg.test(arr[i]) && i<j){
        console.log("i =", i);
        i++
        
      }
      while(!reg.test(arr[j]) && j>i){
        j--
        console.log("j =", j);
      }
      if(i<j) {
          [ arr[i], arr[j] ] = [ arr[j], arr[i] ]
      } else {
        break
      }
      i++;
      j--;
  }
  return arr.join('')
};
reverseOnlyLetters('ab-cd')
阅读 1.5k
1 个回答

你判断reg.test的结果始终是相反的啊,所以走不进去第二层循环

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题