У меня есть четыре массива - цветы, деревья, твари и песни.
У меня есть четыре соответствующие функции - flower (), tree (), critter () и song ().
Внутри каждой отдельной функции я вызывал свою функцию math.random, чтобы извлечь случайное слово из массива Speci c. Например, в моей функции flower () у меня есть:
answer = flowers[Math.floor(Math.random() * flowers.length)];
Я обнаружил, что для генерации случайного слова мне также необходимо выполнить мою функцию math.random в глобальном масштабе. Здесь моя проблема. Я не знаю, как создать функцию math.random без присваивания переменной. В общем, у меня есть это:
function randomWord() {
answer = songs[Math.floor(Math.random() * songs.length)];
}
Так что иногда, когда я нахожусь в категории цветов, появляется слово из моего массива цветов - но иногда вместо этого появляется песня, потому что мне пришлось опубликовать ее глобально чтобы он вообще работал.
Я в растерянности из-за того, как это исправить, и хотя есть много вопросов относительно функции math.floor для массивов - я не нашел никакой информации о том, как обрабатывать несколько массивы вроде этого.
Мне интересно, есть ли общее слово, которое я мог бы использовать вместо определенного c переменного слова для функции math.floor, которая вызывается глобально? Или, может быть, заявление if-else? Я застрял и был бы признателен за любые указания. Спасибо.
Отредактировано, чтобы добавить:
@ KevinWallis, оно вставлено прямо из моего кода:
let answer = "";
function randomWord() {
answer = songs[Math.floor(Math.random() * songs.length)];
}
function flower() {
document.getElementById("main").style.display = 'none';
document.getElementById("play").style.display = "block";
answer = flowers[Math.floor(Math.random() * flowers.length)];
word = flowers[answer];
document.getElementById("categoryName").innerHTML = "Types of Flowers";
updateTreePicture();
randomWord();
generateButtons();
guessedWord();
}
ОБНОВЛЕНИЕ: Я просто хотел опубликовать, чем закончилось исправление существо:
function randomWord() {
if (categoryName === 'Flowers') {
answer = flowers[Math.floor(Math.random() * flowers.length)];
} else if (categoryName === 'Trees') {
answer = trees[Math.floor(Math.random() * trees.length)];
} else if (categoryName === 'Critters') {
answer = critters[Math.floor(Math.random() * critters.length)];
} else if (categoryName === 'Songs') {
answer = songs[Math.floor(Math.random() * songs.length)];
}
}