我想使用特定函数的返回值作为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 !");
}
答案 0 :(得分:0)
对于此类测试,请使用Array.prototype.indexOf
,x = 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 !");
}