我确定我只是以某种方式搞砸了我的代码(仍然是一个noobie)但是我试图创建一个随机数(工作正常)然后使用变量从该随机数发送每3个用户中的1个进行课后调查(根本没有工作正常)。
有没有办法做到这一点,如果是这样,我做错了什么?
这里是代码(这是在adobe Captivate课程中,所以我也使用了API接口库,但那部分工作正常)。
目前,这段代码每次都会将用户发送到列出的链接,而不是依赖于变量。
var jsRandomNumber = 0
function getRandomInt(min, max) {
var jsRandomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
alert(jsRandomNumber);
window.cpAPIInterface.setVariableValue('randomnumber', jsRandomNumber);
}
getRandomInt (1, 3)
function randomQuizGenerator() {
if (var jsRandomNumber = 1) {
window.open("http://www.w3schools.com");
window.cpAPIInterface.next();
} else {
window.cpAPIInterface.next();
}
}
randomQuizGenerator()
答案 0 :(得分:2)
根据你的代码,我看到三个问题,其中两个是对变量的误解,第三个是对条件的误解。
首先,您只需要在顶部一次声明变量var jsRandomNumber
。然后,您只需使用其名称jsRandomNumber
即可访问它。每隔一次将var
放在它前面,就会在该范围内创建一个新变量。
对于if
语句,请再次使用jsRandomNumber
代替var jsRandomNumber
,但您还需要使用==
来比较两个值。使用jsRandomNumber = 1
会将jsRandomNumber
设置为1,然后该值用于确定if
是否应该通过,在这种情况下,它始终会因为1恰好评估为{ {1}}。 true
会返回jsRandomNumber == 1
或true
,具体取决于false
的值。
jsRandomNumber
答案 1 :(得分:1)
您可以使用一些小修补程序来解决您的问题。
jsRandomNumber
。每次使用var
时,都会重新声明该变量,因此它的值会在整个脚本中发生变化。jsRandomNumber
变量置于getRandomInt
函数的本地变量,而不是更新全局变量。您可以返回它并使用返回值。局部变量在这里更有意义,因为您只需要在一个地方更改该数字。如果将变量保留在全局范围内,则getRandomInt
函数之外的代码将能够访问并更改该变量。它使调试问题变得更加困难。==
或===
。使用=
将无效,因为单个等号是赋值运算符。这是一个更新的例子:
function getRandomInt(min, max) {
var jsRandomNumber = Math.floor(Math.random() * (max - min + 1)) + min; // only declare the variable once
alert(jsRandomNumber);
window.cpAPIInterface.setVariableValue('randomnumber', jsRandomNumber);
return jsRandomNumber; // Return the variable, instead of changing a global variable
}
function randomQuizGenerator() {
var myNumber = getRandomInt (1, 3); // using return value, not global variable
if (myNumber === 1) { // triple equals sign for checking equality
window.open("http://www.w3schools.com");
window.cpAPIInterface.next();
} else {
window.cpAPIInterface.next();
}
}
randomQuizGenerator()
答案 2 :(得分:0)
首先,无需重新声明try:
person = Person.objects.get(name=name)
except (Person.DoesNotExist, Person.MultipleObjectsReturned) as e:
person = None
。 jsRandomNumber
主要用于首次声明变量 。因此,您可以删除多次发生的无关var
。
其次,在比较var
语句中的值时,您需要使用if
运算符。单个==
是赋值运算符,也将返回您设置的值。例如,=
将始终评估为true,因为其设置if(a=1)
等于1然后返回1.请查看here以获取更多信息。因此,您应该将if语句更改为:
a