【问题标题】:Why is my "if condition" corrupting my code?为什么我的“如果条件”会破坏我的代码?
【发布时间】:2018-06-27 03:58:13
【问题描述】:

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

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 显示这些函数仅偶尔与第二个函数中的 if 条件一起工作:http://jsfiddle.net/1z7fqL0a/

【问题讨论】:

  • 你能在你的函数PlacesToVisit2Selector而不是外面添加$('.PlacesToVisit2').html(PlacesToVisit2);吗?
  • 我可以猜到,但我认为这并没有触及问题的核心。我很困惑为什么“if”条件会破坏代码……有时。我应该忽略那部分,因为这与函数无关(只是用生成的变量替换空格。)

标签: jquery function if-statement


【解决方案1】:

问题出在这一行

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

只需将其转换为

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

如果PlacesToVisit2RandomPlacesToVisit 相同,您需要将"TEST" 作为参数传递,以便您的函数正常工作。

【讨论】:

  • 谢谢!我知道我错过了一些非常愚蠢的东西。非常感谢您的友好回应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
  • 1970-01-01
相关资源
最近更新 更多