我如何随机化这个变量一个字?
var = 'stack';
for (i=0; i<5; i++){
document.write( Math.random() ??? + '<br />');
}
样本结果:
t c k a s
感谢
答案 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]));
}