我是编程新手,并尝试对if-else逻辑进行编程以创建数组等。
我想使用一个点变量来确定该变量属于哪个点间隔,然后使该数组具有该间隔的函数,并从该数组返回一个随机函数。
例如,我具有里程碑1000、2500等。如果userScorePoints超过2500,我希望该方法从包含有关该数字的函数的数组中返回一个随机函数,直到userScorePoints已达到下一个里程碑,是5000。
我编写的代码的问题在于,它只会从第一个if返回一个随机函数,因此即使我应该从2500获得函数,因为我的积分现在已经超过2603,所以我只能从1000获得函数。 。
有人可以帮我这个忙吗?
这是我的代码:
function getFunfact(userScorePoints) {
var array = new Array();
if (1000 <= userScorePoints < 2500) {
var funfact1000 = new Array();
funfact1000[0] = "funfacts about the number 1000";
funfact1000[1] = "...";
funfact1000[2] = "...";
funfact1000[3] = "...";
funfact1000[4] = "...";
funfact1000[5] = "...";
array = funfact1000;
} else if (2500 <= userScorePoints < 5000) {
var funfact2500 = new Array();
funfact2500[0] = "funfacts about the number 2500";
funfact2500[1] = "...";
funfact2500[2] = "...";
funfact2500[3] = "...";
funfact2500[4] = "...";
funfact2500[5] = "...";
array = funfact2500;
} else if (5000 <= userScorePoints < 10000) {
var funfact5000 = new Array();
funfact5000[0] = "funfacts about the number 5000";
funfact5000[1] = "...";
funfact5000[2] = "...";
funfact5000[3] = "...";
funfact5000[4] = "..."
funfact5000[5] = "...";
array = funfact5000;
} else if (10000 <= userScorePoints < 20000) {
var funfact10000 = new Array();
funfact10000[0] = "funfacts about the number 10.000";
funfact10000[1] = "...";
funfact10000[2] = "...";
funfact10000[3] = "...";
funfact10000[4] = "...";
funfact10000[5] = "...";
array = funfact10000;
} else if (20000 <= userScorePoints < 30000) {
var funfact20000 = new Array();
funfact20000[0] = "funfacts about the number 20.000";
funfact20000[1] = "...";
funfact20000[2] = "...";
funfact20000[3] = "...";
funfact20000[4] = "...";
funfact20000[5] = "...";
array = funfact20000;
} else if (30000 <= userScorePoints < 50000) {
//etc.
} else {}
return array[getRandom(6)]; //this method returns a random element, this one works.
最佳答案
您不能像这样链接关系比较。你必须写:
if (1000 <= userScorePoints && userScorePoints < 2500) {
...
}
您写的内容被解析为好像您写的一样:
if ((1000 <= userScorePoints) < 2500) {
...
}
括号中的比较结果为0或1,该值始终小于2500。