2017-02-19 30 views
0

我要做的随机生成字与现有字

创建一个程序,要求用户对任何长度的字。然后使用仅第一个字的字母随机生成一个相同长度的新单词。多次使用任何字母。确保你只利用新单词的第一个字母。注意。如果用户单词中有空格,那么在输出中会有一个空格。大写每个单词。例如:

用户字:教条 随机生成的单词可能是Gogoa或Oogma或Gmado通知,只有在最后一个示例中,我实际上每次使用每个字母一次。 您必须:使用数组,循环,条件函数(除onclick之外),您的代码必须以Onclick开头。使用所有BP的。
算法:

确定单词的长度。

  • 把这个词切成一个字母数组......。使用循环
  • 随机产生一个介于1和单词长度之间的数字
  • 组装新单词,首字母大写,确保其他单词都是小写。
  • 重复3和4
  • 显示新词。

(我)

所以我有一个文本框,我用字的长度来获得该​​单词的字母数量。然后我有一个重复的循环来获取单词 的数组,我做了一个随机数。我会如何将这些僵硬变成字母并加以拼凑?我知道它还没有完成,我只是想要一些提示。

<html> 
    <head> 
     <title>Final</title> 
    </head> 
    <body> 
     <h1>Final</h1> 

     Random Word generator <br> 


     <input type="text" id="word"> 
     <input type="button" id="submit" value="Randomize" onclick="Random()"> 

     <script language="javascript"> 
      word = document.getElementById("word").value 
      var n = word.length; 
      function Random(){ 
       for(start = 0; start < n; start++){ 
        Array.from(word) 
        do{ 
         var x = Math.round((Math.random() * n) + 1); 
         function capitalize(str) { 
          return str.replace(/\w\S*/g, function(txt) { 
           return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); 
          }); 
         } 
        } 
        while{ 
        x != n; 
        } 
       document.getElementById("word").value = (capitalize(word)); 
      } 
     </script> 
    </body> 
</html> 
+0

看看这里的洗牌功能:http://stackoverflow.com/a/42334240/5483521 –

回答

0

一旦你有了你的字符串,你可以在字符串上使用split来获得一个数组。

从这里你可以用这样的数组来洗牌:Shuffle array 现在你想抓住第一个元素和大写它。然后你可以使用来获得你的新字符串。 Array.join需要分隔符的值,在您的情况下,您希望成为'',因此您不会看到类似H,e,l,l,o的字符串。

+0

所以我如何做到目前为止? Mozilla说我有一些错误,我希望你能帮上忙。 http://pastebin.com/Vi5dgr22 –