【问题标题】:How to build a string with a loop?如何用循环构建字符串?
【发布时间】:2018-01-06 02:54:57
【问题描述】:
var game = prompt('Do you want to play?');

var i = 0;
do {
  if (prompt === 'Yes');
  {
    var game2 = prompt('Enter your word.');
    var game3 = prompt('Do you want to play again?');
  }
  i++;
} while (game3 !== 'No');
{
  console.log(game3);
}

console.log("You're words are: " + game2);

如何获取从这个循环输出的所有单词并用它构建一个字符串?

例如:如果我所有的词都是“篮球、足球、赛车”

我希望他们出来输出像 --> 篮球足球赛

【问题讨论】:

  • 一种方法:创建一个数组:var words = [];。将每个单词推入数组:words.push(game2);。使用 join 打印空格:console.log(words.join(' '));
  • prompt 是函数或字符串。它不能同时在您使用它的上下文中

标签: javascript string loops do-while prompt


【解决方案1】:

希望这会有所帮助...

var game = prompt('Do you want to play?');
var game2 = '';
var space = ' ';
var i = 0;
do {
  if (prompt === 'Yes');
  {
    game2 = game2 + space  + prompt('Enter your word.');
    var game3 = prompt('Do you want to play again?');
  }
  i++;
} while (game3 !== 'No');
{
  console.log(game3);
}

prompt("You're words are: " + game2);

【讨论】:

  • 如果您第一次取消,程序将永远不会终止。
【解决方案2】:

您的代码似乎有一些问题。如果将所有响应放入一个数组中,则可以使用 .join 方法。

var game = prompt('Do you want to play?');

var i = 0;
var words = [];
do {
  // if (prompt === 'Yes'); // this isn't doing anything
  // {
    words.push(prompt('Enter your word.'));
    var game3 = prompt('Do you want to play again?');
  // }
  i++;
} while (game3 !== 'No');
{
  console.log(game3);
}

console.log("You're words are: " + words.join(' '));

【讨论】:

    【解决方案3】:

    我从你的问题中了解到,这应该有效。

    var game = prompt('Do you want to play?');
    
    var i = 0;
    var game2="";
    do {
      if (prompt === 'Yes');
      {
        game2 += " "+prompt('Enter your word.');
        var game3 = prompt('Do you want to play again?');
      }
      i++;
    } while (game3 !== 'No');
    console.log(game3);
    console.log("You're words are: " + game2);
    

    基本上,您只是动态连接。

    【讨论】:

    • 嘿,尼尔,非常感谢!我一直在寻找一种方法来做到这一点最长。我不明白的是,你为什么要为 var game2 加上“”?
    • @MohammedFahad .. 我很高兴它成功了。如果您认为是,请接受它作为答案。关于game2="" 。我只是确保 game2 每次都是一个空字符串。
    • 为什么每次都是空字符串?我不太明白
    • 每次我的意思是,每次有人被问到“你想玩吗?”而不是“你想再玩一次吗?”。这只是初始化,如果我们不这样做,game2 将保持未定义。当我们连接时,我们会得到如下输出:“You're words are: undefinedbasketball football Racing”
    【解决方案4】:

    试试这个

    var words = [];
    
    var i = 0;
    do {
      var game = prompt('Do you want to play' + ((words && words.length) ? ' again' : '') + '? (type yes to continue else exit)');
      if(game && game.toLowerCase() === 'yes') {
        var word = prompt('Enter your word.');
        if(word) {
          words.push(word);
        }
      }
    } while (game && game.toLowerCase() === 'yes');
    
    if(words && words.length) {
      console.log("You're words are: " + words.join(', '));
    } else {
      console.log("no words selected!");
    }

    【讨论】:

      【解决方案5】:

      你可以使用字符串数组:

      var gameArr =[];
      gameArr.push(prompt('Do you want to play?'));
      
      var i = 0;
      do {
        if (prompt === 'Yes');
      {
        gameArr.push(prompt('Enter your word.')); // This will append new string in current string.
        gameArr.push(prompt('Do you want to play again?'));// this also append the new string.
      }
      i++;
      } while (game3 !== 'No');
      {
        console.log(game3);
      }
      
      console.log("Your words are: " + gameArr[1]);
      

      如果您不确定如何从数组 gameArr[] 中获取响应,请告诉我。

      【讨论】:

        猜你喜欢
        • 2015-12-08
        • 2017-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-17
        • 1970-01-01
        • 2018-05-23
        相关资源
        最近更新 更多