我有一个将变量设置为数组中单词的函数:
function PlacesToVisitSelector(var1) {
if ( (var1 == 'TEST')){
var PlacesToVisit =['kilopascal','psi','Torr'];
var PlacesToVisitRandom= PlacesToVisit[Math.floor(Math.random() * PlacesToVisit.length)];
return PlacesToVisitRandom;
}
}
var PlacesToVisit = PlacesToVisitSelector("TEST");
$('.PlacesToVisit').html(PlacesToVisit);
另一个函数,该函数将第二个变量设置为与原始单词不同的同一数组中的单词:
function PlacesToVisit2Selector(var1) {
var PlacesToVisit2 =['kilopascal','psi','Torr'];
var PlacesToVisit2Random= PlacesToVisit2[Math.floor(Math.random() * PlacesToVisit2.length)];
return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector();
}
var PlacesToVisit2 = PlacesToVisit2Selector("TEST");
$('.PlacesToVisit2').html(PlacesToVisit2);
这可行,但是如果我在第二个函数中添加相同的“ if”条件,有时它会停止工作:
function PlacesToVisit2Selector(var1) {
if ( (var1 == 'TEST')){
var PlacesToVisit2 =['kilopascal','psi','Torr'];
var PlacesToVisit2Random= PlacesToVisit2[Math.floor(Math.random() * PlacesToVisit2.length)];
return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector();
}
}
var PlacesToVisit2 = PlacesToVisit2Selector("TEST");
$('.PlacesToVisit2').html(PlacesToVisit2);
我很困惑,因为我已经使用过数十次这些功能,而且从未遇到过任何麻烦。我想念什么?!
JSFiddle显示该函数仅在第二个函数http://jsfiddle.net/1z7fqL0a/的if条件下偶尔起作用:
答案 0 :(得分:2)
问题出在这行
return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector();
只需将其转换为
return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector("TEST");
您需要传递"TEST"
作为参数,以便在PlacesToVisit2Random
和PlacesToVisit
相同的情况下函数正常工作。