我正在尝试交换此字符串中的每个字符:
“嗨,你们真棒!”
输出应该是:
“ihayy uog yu sra ewasemo!e”
我编写了以下代码 - 不幸的是,它一直触发无限循环。我已经尝试了几次迭代,但无法弄清楚为什么我无法阻止循环?有人可以帮助解释为什么会这样吗?
提前致谢!
var input = 'hiya you guys are awesome!';
function flip (string) {
var flipped = []
var flippedRejoin = []
var brokenString = string.split('')
//console.log(brokenString)
for (var i = 0; i < string.length; i+1) {
flipped.push(brokenString[i+1]);
flipped.push(brokenString[i]);
// console.log(flipped);
}
//for (var e = 0; e < string.length; e++) {
flippedRejoin = flipped.join('')
console.log(flippedRejoin)
//}
return flippedRejoin
}
flip(input)
答案 0 :(得分:1)
您的for循环错误,请执行:
for (var i = 0; i < string.length-1; i+=2) {
i + 1不会以任何方式改变我,所以你需要将它递增2(因为你想翻转对)。当你访问i + 1时,最好停在长度为1 ......
总而言之:
function flip (string) {
var flipped = [];
for (var i = 0; i < string.length-1; i+=2) {
flipped.push(string[i+1],string[i]);
}
return flipped.join('');
}