如下函数,不知道为什么,第一层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')
你判断
reg.test
的结果始终是相反的啊,所以走不进去第二层循环