使用案例切换功能申请新兵训练营。 1周的javascript体验,所以对我来说很容易。我已经能够分解字符串并更改每个字母的大小写。我可以递增字符串字符的索引并将数组转回字符串。当我遇到错误并且字符通过两个if / else语句时,我甚至可以将更多的字符写入newString数组。但我不能让循环迭代字符串。 (我用$来发现字符串的结尾,但我已经尝试用myString.length + 1替换,但没有帮助。)
var newString= [];
var myString =("");
function swapCase(str){
i=0;
myString = (str+"$").split("");
console.log("_________ " );
character = myString[i];
//console.log ("char= "+character);
//console.log ("new string a " +newString);
while (character!==myString.length+1){
i=i+1;
//newString.push(character);
if (character == character.toUpperCase()) {
character = character.toLowerCase();
newString.push(character);
console.log (" new string after if 1= "+newString);
console.log ("new index number: "+i) ;
return;
}
else {
character = character.toUpperCase();
//nextLetter = character;
//newString.push(nextLetter);
newString.push(character);
console.log (" new string after if2= "+newString);
console.log ("new index number: "+i) ;
return;
}
}
}
swapCase("My StRIng");
newString=newString.join('')
console.log("final joined string- "+newString);
输出:
new string after if 1= m
new index number: 1
final joined string- m
答案 0 :(得分:0)
您正在通过检查character = string length来进行迭代。例如,如果$ == 25永远不会成立,那么你想要的是
while(i!== myString.length)
答案 1 :(得分:0)
从字符数组重建字符串
let arrayOfCharacters = ["a", "b", "c", "d"]
let rebuiltString = ""
for (let c of arrayOfCharacters) {
rebuiltString = rebuiltString + c
}
console.log(rebuiltString);
打印出“abcd”
答案 2 :(得分:0)
未声明newString,并推送&如果它真的是一个String,则join将无效。 Push&如果它是一个数组,join将起作用。