创建全局变量并生成随机数,并在Javascript

时间:2018-05-08 19:56:02

标签: javascript html css variables

我在这个编码环境中有点新鲜,并尝试用练习来挑战自己。

我正在尝试创建名为quoteNumber的全局变量并生成一个随机数,并在每次调用该函数时更新此变量。

但是使用下面的代码,每次调用函数时,quoteNumber变量都保持不变,并且不会使用新的随机数进行更新。

我可以解决这个问题,将所有变量放在函数中,但由于我在不同的函数中使用这些变量,我想我最好为它创建全局变量。

你有什么建议?



var quotes = [{"quote":"Knowledge speaks, but wisdom listens.","author":"Jimi Hendrix"}];

var quoteNumber = 0 ;
var generatedQuote = quotes[quoteNumber].quote;
var generatedAuthor = quotes[quoteNumber].author;

function quoteGenerator () {
  quoteNumber = Math.floor(Math.random() * 80) + 1;
  document.getElementById("text").innerHTML = generatedQuote;
  document.getElementById("author").innerHTML = generatedAuthor;
}

function share() {
  document.getElementById("tweet-quote").attr('href', 'https://twitter.com/intent/tweet?hashtags=quotes&text=' + encodeURIComponent('"' + generatedQuote + '" ' + generatedAuthor));
}




PS-我缩短了报价的变化,并且放在这里不会产生混淆

1 个答案:

答案 0 :(得分:2)

调用该函数时,您正在更新quoteNumber - 变量。但是,generatedQuotegeneratedAuthor仍然是您从头开始设置的值。 因此,在将quoteNumber设置为新值后,您将必须执行

generatedQuote = quotes[quoteNumber].quote;
generatedAuthor = quotes[quoteNumber].author;

也要更新这些变量。