Как сравнить значение индекса 2 массивов? - PullRequest
0 голосов
/ 06 января 2020

Я за 3 месяца до своего образования, где я буду изучать различные языки, как HTML, CSS, JS и многое другое. В данный момент я в настоящее время изо всех сил пытаюсь найти решение, в основном потому, что я новичок, и я не совсем уверен, что искать. Я создаю веб-сайт (не буду загружать в inte rnet, покажу только для учителя), где у меня есть разные типы маленьких игр. Просто чтобы показать, что я изучил до сих пор, и что я могу сделать (мы, конечно, можем искать в Интернете).

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

У меня есть 2 массивы. Первый массив содержит 10 стран, второй массив содержит 10 столиц. Столица на пятом месте в массиве столиц - столица страны на пятом месте в моем массиве стран.

И это касается всех вариантов. Я также сделал тег DIV, где Math.random выбирает 1 страну случайным образом .... и отображает ее в контейнере DIV. И я получил поле ввода type = "text" для пользователя, чтобы ввести в столичный город для этой страны.

Здесь мне становится сложно, как я могу проверить, имеет ли то, что они написали в виде строки, то же значение индекса (я думаю, это называется?), Что и у другого массива? Я полностью заблудился, как это сделать.

Конечно, я мог бы использовать много операторов if, например if (userInput == Washington) затем alert ("Correct!").

Однако я не хочу этого делать, потому что позже я добавлю опцию для пользователя, чтобы добавить свои собственные страны / полномочия.

Я действительно чувствую, что это стало грязным, поэтому, пожалуйста, задавайте вопросы, если вы не понимаю, и я постараюсь разбить его дальше, спасибо за терпение, ура!

1 Ответ

1 голос
/ 06 января 2020

Поскольку ваш массив 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.

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