为什么我的“如果条件”会破坏我的代码?

时间:2018-06-27 03:58:13

标签: jquery function if-statement

我有一个将变量设置为数组中单词的函数:

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条件下偶尔起作用:

1 个答案:

答案 0 :(得分:2)

问题出在这行

 return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector();

只需将其转换为

return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector("TEST");

您需要传递"TEST"作为参数,以便在PlacesToVisit2RandomPlacesToVisit相同的情况下函数正常工作。