Javascript 从数组列表中获取随机字符串

Javascript 从数组列表中获取随机字符串,javascript,html,Javascript,Html,我有下面的代码,但无法让它工作。它应该从myArray返回1个值,但它返回“undefined”。有什么问题吗 HTML <div id="quote"></div> JSFiddle可以找到var rand=Math.floor(Math.random()*myArray.length) 小提琴很管用 var myArray = ['January', 'February', 'March']; var rand = Math.floor(Math.random()

我有下面的代码,但无法让它工作。它应该从myArray返回1个值,但它返回
“undefined”
。有什么问题吗

HTML

<div id="quote"></div>
JSFiddle可以找到var rand=Math.floor(Math.random()*myArray.length)

小提琴很管用

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 

问题是,
rand
”已经是数组中的值(例如“一月”),
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);
用这个

var myArray = ['January', 'February', 'March'];

var rand = Math.floor(Math.random() * myArray.length);

function showquote(){

    document.getElementById('quote').innerHTML = myArray[rand];
}
showquote();

所以,rand已经等于month name
document.getElementById('quote')。innerHTML=rand首先尝试一些基本调试:
console.log(rand)
尽管这是一个简单的错误。。。用小提琴向上投票,选出写得很清楚的问题,谢谢大家的反馈。@AndyJones我投了一票,因为错误很简单,而且答案不太可能在将来帮助任何人。@ejay_francisco错误不是语法错误。这只是OP意外尝试两次取消引用
myArray[]
的一个例子,一次是在
rand
调用中,另一次是在
showquote()
@DNac中。这是这里最清楚的答案,唯一正确解释数组中双重索引的答案。我想你应该接受这个。
var myArray = ['January', 'February', 'March'];

var rand = Math.floor(Math.random() * myArray.length);

function showquote(){

    document.getElementById('quote').innerHTML = myArray[rand];
}
showquote();