不知道怎么做但我需要输出一组字符x,y和z。输出长度为3个字符,由x,y和z组成。但是角色彼此之间的可能性很小。基本上输出字符(来自一组,在本例中为x,y和z)随机输出。示例输出 - xyy,zzz,yyz等。我猜我需要一个函数吗?
答案 0 :(得分:1)
您可以这样做:
var chars = ['x','y','z'];
function show_chars(arr){
var l = arr.length;
return arr[Math.floor(Math.random()*l)]
+ arr[Math.floor(Math.random()*l)]
+ arr[Math.floor(Math.random()*l)]
}
console.log(show_chars(chars));
答案 1 :(得分:1)
另一种方法:
DEMO:http://jsfiddle.net/VNh7n/1/
function randomXYZ() {
return 'xxx'.replace(/x/g, function () {
return String.fromCharCode(Math.floor(Math.random() * 3) + 120);
});
}
console.log(randomXYZ());
答案 2 :(得分:0)
对于每个字符仅出现一次的随机组合:
function shuffleChars(s) {
s = s.split('');
var i = s.length;
var result = [];
while (i) {
result.push(s.splice(Math.floor(Math.random() * (i--)),1));
}
return result;
}
对于随机组合,其中字符可能出现任意次数,直到字符串的长度:
function randomChars(s) {
s = s.split('');
for (var i=0, iLen=s.length, result=[]; i<iLen; i++) {
result[i] = s[Math.random() * iLen | 0];
}
return result;
}
randomChars('xyz');
以上两种都可以使用任何长度的字符串。