-1

次の JavaScript を使用しています。最終的な結果は表示シーケンス文字です。しかし、英数字の順番で表示したい。それ、どうやったら出来るの?

var disp = '';
var string = '';
var i;
var chars = "0123456789abcdefghiklmnopqrstuvwxyz";

var ran_unrounded;
var ran_number;
var rnum;
for (i = 0; i < 5; i++) {
    rnum = Math.floor(Math.random() * chars.length);
    string += chars.substring(rnum, rnum + 1);

    ran_unrounded = Math.random() * 3;
    ran_number = Math.floor(ran_unrounded);
    //document.write(chars.substring(rnum, rnum + 1));
    // alert('rnum', rnum, '--', rnum + 1);

    disp = chars.substring(rnum, rnum + 8);
}
4

1 に答える 1

1

上記のコメントの説明から、要件は、2 つのランダムな「単語」を含む文字列を生成することです。各「単語」には、定義済みの使用可能な文字セットからランダムに選択された 4 つの文字が含まれます。

そのための 1 つの方法を次に示します。

var chars = "0123456789abcdefghiklmnopqrstuvwxyz";
function getWord(numChars) {
    var word = "",
        i;
    for (i = 0; i < numChars; i++)
        word += chars.charAt(Math.floor(Math.random() * chars.length));
    return word;
}
function getWords(numWords, numCharsPerWord) {
    var words = [],
        i;
    for (i = 0; i < numWords; i++)
        words.push(getWord(numCharsPerWord));
    return words.join(" ");
}

console.log( getWords(2, 4) );        // "a8ak 1wp9"
console.log( getWords(3, 4) );        // "7ua1 zh80 yy3r"
console.log( getWords(2, 5) );        // "j5ms2 e4xn8"

デモ: http://jsfiddle.net/dgnwh/

于 2012-11-26T04:52:42.020 に答える