jquery - 为什么我的“如果条件”会破坏我的代码?
问题描述
我有一个将变量设置为数组中的单词的函数:
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/
解决方案
问题在于这条线
return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector();
只需将其转换为
return (PlacesToVisit2Random !== PlacesToVisit) ? PlacesToVisit2Random: PlacesToVisit2Selector("TEST");
您需要"TEST"
作为参数传递,以便您的函数在大小写相同PlacesToVisit2Random
的情况下正常工作。PlacesToVisit
推荐阅读
- postgresql - 提交和回滚语句(在子存储过程中)会影响 Postregsql 中的主存储过程吗?
- ajax - cakephp 4 为特定操作禁用 csrf
- swift - SSKeychain 已被弃用,取而代之的是 SAMKeychain
- sql-server - Access VBA 生成的 ODBC 连接字符串恢复
- r - R, 3-way table, 如何订购
- powershell - 在调用 Get-Content 的结果上调用 Write-Host
- android - android菜单项不会出现在顶栏上
- javascript - 停止输入 React Js 时调用函数
- python - 空时如何让 QIntValidator() 调用editingFinished?
- python - For循环获取素数