使用循环创建Word加扰器

时间:2013-02-18 21:12:05

标签: javascript arrays loops textbox buttonclick

尝试创建一个单词加扰器,它从文本框中获取文本,对字母进行加密,然后在不同的文本框中重复它们。代码必须使用循环来跨文本数组分发文本。一旦我到达Math.floor对象,我就会如何处理而感到困惑。

相关守则:

    <script type="text/javascript">

    var word = document.getElementById("input").value;
    var wordLength = word.length;
    var scrambled = "";

    for (var i = 0; i < wordlength; i++) {
        var charIndex = Math.floor(Math.random() * word.length);
        scrambled += word.charAt(charIndex);
        word = word.substr(0, charIndex) + word.substr(charIndex + 1);
    }

    document.getElementById("output").value = scrambled;

    }

    </script>

    <head>
    <body>
    <form>  
    <input type="text" name="input" id="input" value="" maxlength="10"> <input type="text" name="output" id="output" value="" disabled="true"><br/>
    <input type="button" name="generate" value="Generate" onClick="Scramble(this.form)">
    </form>
    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

将单词随机化的简单方法如下:

var word = "hello";
var wordLength = word.length;
var scrambled = "";

for (var i = 0; i < wordLength; i++) {
    var charIndex = Math.floor(Math.random() * word.length);
    scrambled += word.charAt(charIndex);
    word = word.substr(0, charIndex) + word.substr(charIndex + 1);
}

这样做是从每个循环中的单词中删除一个字母并将其附加到一个字符串,该字符串将成为您的随机单词。 Math.random生成0到1之间的随机数,以及导致结果的Math.floor轮。因为要开始的单词中有六个字母,这会产生一个介于0和5之间的数字(这是你想要的,因为没有第六个索引)。

剩下要做的就是将结果弹出到文本框中。

答案 1 :(得分:0)

此循环测量缩小的原稿,同时随机删除加扰的字母 -

function scrambleWord(s){
    var word= s.value.split(''), scram= '';
    while(word.length){
        scram+= word.splice(Math.floor(Math.random()*word.length), 1)[0];
    }
    return scram;
}

警报(scrambleWord({值: '菠菜'}));