【发布时间】:2016-12-11 22:52:32
【问题描述】:
大家晚上好,
我正在尝试生成一个由 8 个字符组成的字符串,这些字符是从数组中随机选择的。这就是我正在使用的:
var myArrayPismo = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
while(myArrayPismo.length < 9){
var randomletter = Math.ceil(Math.random()*myArrayPismo.length)
if(myArrayPismo.indexOf(randomletter) > -1) continue;
myArrayPismo[myArrayPismo.length] = randomletter;
}
出于某种原因,它只是打印出所有的字母。
这是我的数字生成函数:
var kodCisla = [];
while(kodCisla.length < 9){
var randomnumber = Math.ceil(Math.random()*9)
if(kodCisla.indexOf(randomnumber) > -1) continue;
kodCisla[kodCisla.length] = randomnumber;
}
哪个工作正常。除了我希望它能够生成 2 个或更多相同的数字,而不仅仅是每次都不同。
我的目标是得到这样的随机字母串:KODlkSmQW
和一个随机的数字串,也可以像这样重复:887562327
我们将不胜感激任何对这些问题的帮助。
【问题讨论】:
-
请举例说明您期望的输出。首先你说你想要随机,然后你说想要重复。另外,不要四舍五入,因为如果你四舍五入,你永远不会得到“A”。
-
添加了预期结果
-
我还没关注你。生成随机数时,总是存在重复值的可能性。
-
试试这个jsfiddle.net/actf8rf0你可以附加额外的参数来满足你的需要(比如固定长度等)我把html只是为了演示。
-
好吧,我设法解决了我的数字问题,我只需将
(kodCisla.indexOf(randomnumber) > -1)中的 -1 更改为 0
标签: javascript random