输出在同一行 - For Of Loop

时间:2017-09-07 20:41:43

标签: javascript for-of-loop

如何在同一行输出? 目前,它在垂直列表中列出;

但我想这样排队" lAbI ......"

代码有效。这只是输出结果的问题。请提供简单的解决方案。

   var words ="kzahdjdnshdkjts";
   var letters = words.split("");

   var final = "";
   for(let letter of letters){

    if(letter === "z"){
        letter = "`";
    }

  final = letter.charCodeAt();
  final += 1;

    if(final === 97){
            final = 65;
       }else if(final === 101){
            final = 69;
       }else if(final === 105){
            final = 73;
       }else if(final === 111){
            final = 79;
       }else if(final === 117){
            final = 85;
                } 

      final = String.fromCharCode(final);
      console.log(final);
       }

5 个答案:

答案 0 :(得分:2)

创建第二个字符串(在本例中为finalString),该字符串最初为空,追加而不是覆盖它(使用+=)。

您还需要确保在console.log()循环之外运行for



var words = "kzahdjdnshdkjts";
var letters = words.split("");

var final = "";
var finalString = "";
for (let letter of letters) {

  if (letter === "z") {
    letter = "`";
  }

  final = letter.charCodeAt();
  final += 1;

  if (final === 97) {
    final = 65;
  } else if (final === 101) {
    final = 69;
  } else if (final === 105) {
    final = 73;
  } else if (final === 111) {
    final = 79;
  } else if (final === 117) {
    final = 85;
  }

  finalString += String.fromCharCode(final);
}

console.log(finalString);




希望这有帮助! :)

答案 1 :(得分:1)

您可以将输出作为HTML文本添加到节点中。

var words = "kzahdjdnshdkjts";
var letters = words.split("");

var final = "";
for (let letter of letters) {

  if (letter === "z") {
    letter = "`";
  }

  final = letter.charCodeAt();
  final += 1;

  if (final === 97) {
    final = 65;
  } else if (final === 101) {
    final = 69;
  } else if (final === 105) {
    final = 73;
  } else if (final === 111) {
    final = 79;
  } else if (final === 117) {
    final = 85;
  }

  final = String.fromCharCode(final);
  document.body.innerHTML += final;
}

答案 2 :(得分:0)

您可以先附加字母,然后将最后一个字符串打印到控制台。



   var words ="kzahdjdnshdkjts";
   var letters = words.split("");

   var veryfinal = "";
   var final = "";
   for(let letter of letters){

    if(letter === "z"){
        letter = "`";
    }

  final = letter.charCodeAt();
  final += 1;

    if(final === 97){
            final = 65;
       }else if(final === 101){
            final = 69;
       }else if(final === 105){
            final = 73;
       }else if(final === 111){
            final = 79;
       }else if(final === 117){
            final = 85;
                } 

      final = String.fromCharCode(final);
      veryfinal=veryfinal + final;

       }
             console.log(veryfinal);




答案 3 :(得分:0)

您可以.map()分割为新的char代码数组的数组,这些char代码将传递给String.fromCharCode()



var words = "kzahdjdnshdkjts";

console.log( 
  String.fromCharCode(...words.split("").map(c => {
    const final = (c === "z" ? "`" : c).charCodeAt() + 1;

    switch (final) {
    case 97:  return 65;
    case 101: return 69;
    case 105: return 73;
    case 111: return 79;
    case 117: return 85;
    default:  return final;
    }
  }))
)




所以现在你只有一次String.fromCharCode调用,它使用扩展语法获取所有替换字符代码的数组。

这种方式更快更清晰。

答案 4 :(得分:0)

我还没有尝试过这段代码,但这可能会有效:(将其替换为代码的最后3行。)

var finalString = "";
final = String.fromCharCode(final);
    finalString.concat(final)
}
console.log(finalString);

你需要在循环中连接字符串并将其打印在循环外。