Javascript 从数组列表中获取随机字符串
我有下面的代码,但无法让它工作。它应该从myArray返回1个值,但它返回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()
“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 namedocument.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();