Поскольку ваш массив Country и массив Capital имеют одинаковые индексы (и я предполагаю, что они будут всегда). Вы можете использовать функцию Math.random для генерации числа. (Как и вы)
Вы уже знаете ответ, так как Страна [1] должна иметь в качестве ответа Captial [1] Итак, что вы хотите проверить, соответствует ли написанное вами вашему ответу. И это то, что вы знаете.
Итак, мы хотим знать, равен ли пользовательский ввод массиву Capital в индексе math.random:
If(userinput === Captial[math.random number here]) //do your stuff
Существуют функции, которые могут помочь вам проверить строку. Потому что если у вас есть «Лондон» или «Лондон», это может отличаться от правильности ответа.
Я думаю, что самое главное, не код. Но мыслительные процессы.
__ Редактировать: На основе предоставленного вами кода есть несколько вещей.
Прежде всего, userEnter == glosorSV[ri]
переменная ri не была определена. Это имеет две причины: функция, в которой вы хотите сгенерировать случайное число, никогда не вызывается, и даже если вы вызываете ее, она не возвращает число.
function randomizeWord(){
var ri = Math.floor(Math.random() * glosorEng.length);
document.getElementById("contentG").innerHTML = glosorEng[randomGlosa];
У вас есть эта функция, и она создаст случайное число. Но затем вы берете переменную randomGlosa
, чтобы выбрать элемент в вашем массиве, в то время как randomGlosa не определена. Переменная, которая содержит случайное число, называется ri, поэтому вы хотите изменить это значение на glosorEng[ri]
, или вы хотите изменить var ri
на var randomGlosa
Следующая проблема заключается в том, что эта функция не дает что-нибудь назад. Это пустая функция. Я понятия не имею, как далеко вы находитесь с функциями в вашем курсе. Пустые функции используются, когда нет вывода, который должна обрабатывать «основная» программа. В этом случае мы заботимся, так как нам нужно случайное число. Кроме того, она вообще не должна быть функцией, если только ваше назначение не хочет, чтобы она была функцией. Таким образом, мы можем определить переменную, которая доступна во всем скрипте, или вы должны дать ей возвращаемое значение. На основании того, как вы вызываете функцию.
Созданный вами for-l oop не имеет смысла. Вы берете список и l oop через каждый элемент, но не используете элемент вообще. Рядом с i=0
должна быть декларация для var i=0
или let i = 0
. Что касается var и let, вы должны искать let и const, чтобы объявить переменные, если ваши материалы для чтения и чтения не используют их. Тогда знайте, что существует другой, более новый, метод объявления.
Если вы удалите for-l oop, возврат не требуется, так как функция автоматически остановится, так как ваш возврат не имеет значения. Это будет делать то же самое.
Так как это должно выглядеть:
//Have your vars here:
var 1 = ...
var 2 = ...
var ri = 0;
function randomizeWord(){
ri = Math.floor(Math.random() * glosorEng.length);
document.getElementById("contentG").innerHTML = glosorEng[ri];
}
function checkAnswer(){
//Get user input
if(userEnter === glosorSV[ri])
//Logic here for the alerts
}
Я предполагаю, что функции вызываются кнопками с событием onclick.