Создайте глобальную переменную, сгенерируйте случайное число и обновите переменную при вызове функции в Javascript. - PullRequest
0 голосов
/ 08 мая 2018

Я немного новичок в этой среде программирования и пытаюсь бросить вызов себе с помощью упражнений.

Я пытаюсь создать глобальную переменную с именем 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 голосов
/ 08 мая 2018

При вызове функции вы корректно обновляете переменную quoteNumber. Тем не менее, generatedQuote и generatedAuthor по-прежнему являются значениями, которые вы задали с самого начала. Итак, после установки значения quoteNumber в новое значение, вам нужно будет сделать

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

Для обновления этих переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...