Как получить выходные данные функций и использовать их в выражении IF / else - PullRequest
0 голосов
/ 28 марта 2019

У меня есть function в нижней части моего скрипта, который подсчитывает, сколько инструментов было использовано.

Затем, исходя из того, сколько инструментов было использовано, я хочу выполнить различные действия.

Я могу легко проверить вывод функции, но я изо всех сил пытаюсь вставить ее в оператор If.

Как получить выходные данные функций и повторно использовать их в выражении IF?

var HowManyTools = HowManyTools1();

if (HowManyTools <= 2) {
  Category13();
} else if (HowManyTools >= 6) {
  Category14();
} else if (HowManyTools > 2) {
  Category12();
}

function HowManyTools1() {
//returns value between 1-9
}

Обновление: я добавил if к последнему else. Он выполняет Category13();. Без if все предыдущие операторы были просто false, поэтому он сразу перешел к последнему утверждению с Category12();

Я могу вывести в категорию 13 / категорию 12. Но не Категория14.

Кажется, что моя функция не может быть определена, как только я помещаю ее в переменную, и если я пытаюсь alert(HowManyTools), я просто получаю undefined Ошибка.

Попробовал несколько примеров отсюда, но безрезультатно

1 Ответ

0 голосов
/ 28 марта 2019

Этот вариант должен демонстрировать, что каждая из ваших функций категории будет выполняться, если выполнено ее условие if.

Я передаю HowManyTools каждой из этих функций в демонстрационных целях.

for (var i = 0; i < 20; i++) {
  test();
}  

function test () {
  var HowManyTools = HowManyTools1();

  if (HowManyTools <= 2) {
    Category13(HowManyTools);
  } else if (HowManyTools >= 6) {
    Category14(HowManyTools);
  } else if (HowManyTools > 2) {
    Category12(HowManyTools); 
  }
}

function HowManyTools1() {
  return  Math.floor(Math.random() * 9 + 1);
}

function Category12(val) {
  console.log(`Category 12: value = ${val}`);
}

function Category13(val) {
  console.log(`Category 13: value = ${val}`);
}

function Category14(val) {
  console.log(`Category 14: value = ${val}`);
}
...