JavaScript:Math.random()返回相同的数字。我该怎么阻止这一切?

JavaScript:Math.random()返回相同的数字。我该怎么阻止这一切?,javascript,arrays,math,random,web-frontend,Javascript,Arrays,Math,Random,Web Frontend,我有一个JavaScript字符串数组,我想从数组中选择一个随机字符串。但是,当它在Edge和Chrome中运行时,不会抛出任何错误,但每次都会从数组中拾取相同的字符串。我已经看过了关于堆栈溢出的其他答案,但它们似乎都没有帮助。这是我的密码: var arr=[“string1”、“string2”、“string3”、“string4”、“string5”、“string6”、“string7”];/*实际数组中有100个引号*/ var dis=parseInt(提示(“输入要显示的字符串

我有一个JavaScript字符串数组,我想从数组中选择一个随机字符串。但是,当它在Edge和Chrome中运行时,不会抛出任何错误,但每次都会从数组中拾取相同的字符串。我已经看过了关于堆栈溢出的其他答案,但它们似乎都没有帮助。这是我的密码:

var arr=[“string1”、“string2”、“string3”、“string4”、“string5”、“string6”、“string7”];/*实际数组中有100个引号*/
var dis=parseInt(提示(“输入要显示的字符串数”);
如果(dis>arr.length){
警报(“您输入的数字太大。”);
}否则{

对于(var n=1;n可能是因为需要将Math.random转换为整数。 试试这个

document.write(arr[parseInt((Math.random()*(arr.length-1)))]+“

您可以尝试:

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}
//////////////

document.write(arr[getRandomInt(0, arr.length-1)]+"<br/>");
document.write(arr[getRandomInt(0,arr.length-1)]+“
”;
通过使用
Math.floor()四舍五入,使用int作为索引。

var arr=[“string1”、“string2”、“string3”、“string4”、“string5”、“string6”、“string7”];/*实际数组中的100个引号*/
var dis=parseInt(提示(“输入要显示的字符串数”);
如果(dis>arr.length){
警报(“您输入的数字太大。”);
}
否则{

对于(var n=1;n
var arr=[“string1,
这能回答您的问题吗?
parseInt
用于将字符串转换为整数。更典型的方法是
Math.floor(Math.random()*arr.length)