我有如下代码,但无法使其正常工作。它应该从myArray返回1个值,但它返回"undefined"
。有什么问题?
HTML
<div id="quote"></div>
的JavaScript
var myArray = ['January', 'February', 'March'];
var rand = myArray[Math.floor(Math.random() * myArray.length)];
function showquote(){
document.getElementById('quote').innerHTML = myArray[rand];
}
showquote();
here可以找到JSFiddle 。
答案 0 :(得分:4)
this小提琴作品。
var myArray = ['January', 'February', 'March'];
var rand = Math.floor(Math.random() * myArray.length);
function showquote(){
document.getElementById('quote').innerHTML = myArray[rand];
}
showquote();
问题在于这一行
var rand = myArray[Math.floor(Math.random() * myArray.length)]; // dereferenced myArray[] twice here
答案 1 :(得分:3)
问题是rand
'已经是数组中的值(例如“1月”),
var rand = myArray[Math.floor(Math.random() * myArray.length)];
因此您无法使用myArray['January']
再次从数组中获取值。
你应该改变你的Js功能,如下所示
function showquote(){
document.getElementById('quote').innerHTML = rand;
}
或更改您的变量
var rand = Math.floor(Math.random() * myArray.length);
答案 2 :(得分:2)
var rand = Math.floor(Math.random()* myArray.length);
答案 3 :(得分:2)
使用此
var myArray = ['January', 'February', 'March'];
var rand = Math.floor(Math.random() * myArray.length);
function showquote(){
document.getElementById('quote').innerHTML = myArray[rand];
}
showquote();