我想创建一个4个字母的长字符串,RANDOMLY包含字符串中的任何字母:“ROYGBV”。灵活使用Math.random
我所做的一切是这样的:
function generateSolution(){
var colors = "ROYGBV";
var str = "";
for (var i=0; i<4; i++) {
var loc = Math.ceil(Math.random()*colors.length);
str += colors.charAt(loc);
}
return str;
}
但这似乎不正确的,这是为什么?
也,这是从锻炼的解决方案:
str += colors.charAt((Math.random() * 6) | 0);
我使用Math.ceil在我的解决方案,以防止randoming花车像4.333123等。这个解决方案如何工作,而不是将随机数字四舍五入?
另外,运营商|
是什么意思?以及第二种解决方案中的随机化实际上如何工作?
缺少靛蓝? –
@frrlod:一旦你收到答案,你为什么这么改变你的问题? – Matt
我想强调问题的第二部分,但你是对的。感谢您的编辑。 – frrlod