使用函数return作为条件语句的内容

时间:2015-07-19 19:01:50

标签: javascript function if-statement return

我想使用特定函数的返回值作为if语句的条件。这可能吗?

我基本上在一个函数内部构建一个字符串,该函数接受一个数组(conditionArray)并将其连接到一个语句。 然后它将此条件作为字符串返回。 之后,我想使用这个字符串作为我的if语句的条件。

我当前的问题看起来像那样。

var answer = prompt("Tell me the name of a typical domestic animal");

var conditionArray = new Array("Dog", "Turtle", "Cat", "Mouse")

function getCondition(conditionArray) {

  for (i = 0; i < conditionArray.length; i++) {

    if (i != conditionArray.length) {

      condition += 'answer === ' + conditionArray[i] + ' || ';

    } else {

      condition += 'answer === ' + conditionArray[i];

    }

    return condition;


  }

}

if (getCondition(conditionArray)) {

  alert("That is correct !");

} else {

  alert("That is not a domestic animal !");

}

2 个答案:

答案 0 :(得分:0)

对于此类测试,请使用Array.prototype.indexOfx = arr.indexOf(item)

  • x === -1表示item不在arr
  • 否则x是第一次出现arr的{​​{1}}索引
item

答案 1 :(得分:0)

进行此类测试的最佳方法是使用Array.prototype.indexOf。有关如何使用它的详细信息,请参阅Paul的答案。

-

如果确实 确实想要返回条件,则可以使用eval()来评估条件字符串。请注意,eval()虽然很危险。不推荐使用它。见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Don%27t_use_eval_needlessly!

if (eval(getCondition(conditionArray))) {
  alert("That is correct !");
} else {
  alert("That is not a domestic animal !");
}