Javascript从数组重建字符串,循环不迭代

时间:2016-08-31 02:30:30

标签: javascript arrays push

使用案例切换功能申请新兵训练营。 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

3 个答案:

答案 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将起作用。