Как правильно вставить этот оператор if в функцию? - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь вставить приведенный ниже код if else в функцию. Ожидаемое поведение - возврат массивов из локальной области в глобальную. Всякий раз, когда я пытаюсь поместить приведенный ниже код в функцию, я получаю справочную ошибку «код не определен». Мне явно нужно вернуть эти массивы из локальной области видимости в глобальную.

 if (randomnum == 1) {
      var codes = ["qjyreu", "achin", "eralnrde", "hiwel", "eW", "ni"];
      var words = ["jquery", "china", "learned", "while", "We", "in"];
      var finalAnswer = "Welearnedjquerywhileinchina";
    } else if (randomnum == 2) {
      var codes = ["oegs", "yob", "nignadc", "hTe", "ightn", "veery"];
      var words = ["goes", "boy", "dancing", "The", "night", "every"];
      var finalAnswer = "Theboygoesdancingeverynight";
    }

Для справки, randomnum определен в функции rando:

function rando() {
  return (randomnum = Math.floor(Math.random() * 2) + 1);
}
rando();

1 Ответ

0 голосов
/ 08 мая 2020
function rando() {
  var randomnum = Math.floor(Math.random() * 2) + 1;
  var finalAnswer
  if (randomnum == 1) {
      var codes = ["qjyreu", "achin", "eralnrde", "hiwel", "eW", "ni"];
      var words = ["jquery", "china", "learned", "while", "We", "in"];
      finalAnswer = "Welearnedjquerywhileinchina";
    } else if (randomnum == 2) {
      var codes = ["oegs", "yob", "nignadc", "hTe", "ightn", "veery"];
      var words = ["goes", "boy", "dancing", "The", "night", "every"];
      finalAnswer = "Theboygoesdancingeverynight";
    }
  return (finalAnswer);
}
rando();

Проблема в том, что вы используете инструкцию в возврате. Таким образом, другой код не будет выполнен. А также, поскольку вам нужно что-то вернуть, вы должны определить окончательный ответ из оператора if else. Затем верните его.

Обновлено

Если хотите вернуть все

function rando() {
  var randomnum = Math.floor(Math.random() * 2) + 1;
  var finalAnswer, codes, words;
  if (randomnum == 1) {
      codes = ["qjyreu", "achin", "eralnrde", "hiwel", "eW", "ni"];
      words = ["jquery", "china", "learned", "while", "We", "in"];
      finalAnswer = "Welearnedjquerywhileinchina";
    } else if (randomnum == 2) {
      codes = ["oegs", "yob", "nignadc", "hTe", "ightn", "veery"];
      words = ["goes", "boy", "dancing", "The", "night", "every"];
      finalAnswer = "Theboygoesdancingeverynight";
    }
  return ([finalAnswer, words, codes]);
}
rando();
...