Math.random()和变量

时间:2011-05-16 16:07:05

标签: jquery random

我如何随机化这个变量一个字?

var = 'stack';

for (i=0; i<5; i++){
   document.write( Math.random() ??? + '<br />');
}

样本结果:

t
c
k
a
s

感谢

2 个答案:

答案 0 :(得分:1)

这是一个解决方案:

var st = 'stack';

for (i=0; i<st.length; i++){
    var random = (Math.random() * st.length);
    document.write( st.slice(random, random+1) + '<br />');
}

小提琴:http://jsfiddle.net/maniator/Xx4NA/(继续按运行以查看每次运行方式不同)

答案 1 :(得分:1)

修订后Neal指出,之前的解决方案没有考虑重复的字母:

var randomIndexes = new Array();
for (i = 0; i < word.length; i++) {
    randomIndexes[i] = -1;
}

for (i = 0; i < word.length; i++) {
    while (randomIndexes[i] == -1) {
        randomIndexes[i] = Math.floor(Math.random() * word.length);
        for (j = 0; j < i; j++) {
            if (randomIndexes[i] == randomIndexes[j]) {
                randomIndexes[i] = -1;
                break;
            }
        }
    }
}

for (i = 0; i < word.length; i++) {
    document.write(word.charAt(randomIndexes[i]));
}