随机生成一个包含现有单词的单词

时间:2017-02-19 19:26:48

标签: javascript arrays string random

我必须做什么

创建一个程序,询问用户任何长度的单词。然后仅使用第一个单词的字母随机生成相同长度的新单词。任意多次使用任何字母。确保仅大写新单词的第一个字母。注意。如果用户词中有空格,那么您的输出中将有一个空格。把每个词都大写。例如:

用户词:教条 随机生成的单词可能是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>

1 个答案:

答案 0 :(得分:0)

获得字符串后,可以在字符串上使用split来获取数组。

从这里,您可以使用以下内容对数组进行随机播放:Shuffle array 现在你要抓住第一个元素并将其大写。然后,您可以使用Array.join('')来获取新字符串。 Array.join为分隔符设置了一个值,在您的情况下,您希望成为分离符号&#39;&#39;所以你最终不会看到像H,e,l,l,o那样的字符串。