1

テキスト ボックスからテキストを取得し、文字をスクランブルして、別のテキスト ボックスで繰り返す単語スクランブラーを作成しようとしています。コードはループを使用して、文字の配列全体にテキストを分散する必要があります。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>
4

2 に答える 2

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;
}

alert(scrambleWord({value:'ほうれん草'}));

于 2013-02-18T23:27:45.710 に答える
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);
}

これが行うことは、各ループで単語から 1 文字を削除し、ランダム化された単語になる文字列に追加することです。Math.random0 から 1 の間の乱数を生成し、Math.floor結果を切り捨てます。開始する単語には 6 文字あるため、0 から 5 までの数字が生成されます (6 番目のインデックスがないため、これが必要です)。

あとは、結果をテキスト ボックスにポップするだけです。

于 2013-02-18T21:25:55.403 に答える