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

时间:2014-07-04 08:20:11

标签: javascript html

我有如下代码,但无法使其正常工作。它应该从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

4 个答案:

答案 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();