Javascript 从数组中随机选取索引总是返回相同的索引?
每次它只返回最后一个字母g,而不是数组中的随机字母Javascript 从数组中随机选取索引总是返回相同的索引?,javascript,arrays,indexing,Javascript,Arrays,Indexing,每次它只返回最后一个字母g,而不是数组中的随机字母 我做错了什么?可能需要修复代码中的一些拼写错误: var letters = ["a", "b", "c", "d", "e", "f", "g", "h"] var letter = letter[Math.round(Math.random()*(quotes.length))] 此外,您可能不想使用Math.round,因为它可能会导致越界数组访问错误。你应该试试Math.floor (quotes.length) 什么是引号?
我做错了什么?可能需要修复代码中的一些拼写错误:
var letters = ["a", "b", "c", "d", "e", "f", "g", "h"]
var letter = letter[Math.round(Math.random()*(quotes.length))]
此外,您可能不想使用Math.round
,因为它可能会导致越界数组访问错误。你应该试试Math.floor
(quotes.length)
什么是引号
?您需要字母
您正在执行var letter=letter
,但尚未定义letter
。另外,从数组中选择随机元素时,请使用Math.floor
而不是Math.round
:
常量字母=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”];
常量字母=字母[Math.floor(Math.random()*letters.length)];
控制台日志(信件)代码>纠正错误,你应该会没事的
var-letter=letters[Math.round(Math.random()*(letters.length))]
将quotes.length
更改为letters.length
引号中的引号是什么。length?你有什么惊讶吗<代码>变量字母=字母[Math.floor(Math.random()*(letters.length))]。。。所以<代码>字母[…]不是字母[…]
。。snt如上所述,letters.length
oops,我的意思是将引号改为lettersso,实际上,唯一的问题是,如果使用Math.round
,偶尔会出现未定义的情况,这是唯一的“非打字错误”代码中的问题不要使用Math.round
,正如所有其他答案中提到的,击败你的答案是:是的,我并不是想引用。我把它改成了字母。但每次都返回相同的索引,字母“h”?@Jesse你为什么否决我的答案?我把它粘贴到一个Chrome控制台上(用地板
替换圆形
),它会随机返回字母。还有其他东西在影响你的代码。@Jesse-如果你一直用上面的代码写h
,那么你的代码肯定与你在问题中发布的代码有很大的不同。我不是想加引号,那是一个打字错误。我把它改成了字母,但它每次都给我相同的索引/字母?如果你想让它正常工作,你的代码应该和我的一样-如果它对你不起作用,那么你就没有使用和我相同的代码。
var letters = ["a", "b", "c", "d", "e", "f", "g", "h"]
var letter = letters[Math.round(Math.random()*(letters.length))]