Javascript 如果X在一个数字范围内,如何为X分配一个数字?
我正在使用random,我想要的是,如果(例如)X=173。X必须是10。 让我解释一下:根据一系列数字,X将有一个新值: 如果X小于或等于10,则X必须等于26 如果X小于或等于20,则X必须等于35, 如果X小于或等于30,则X必须等于12 每10个单位X将有一个不同的值 到目前为止,这是我所拥有的,但我认为这段代码不是最合适的:Javascript 如果X在一个数字范围内,如何为X分配一个数字?,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在使用random,我想要的是,如果(例如)X=173。X必须是10。 让我解释一下:根据一系列数字,X将有一个新值: 如果X小于或等于10,则X必须等于26 如果X小于或等于20,则X必须等于35, 如果X小于或等于30,则X必须等于12 每10个单位X将有一个不同的值 到目前为止,这是我所拥有的,但我认为这段代码不是最合适的: var X = 55; if(X <= 10){ X = 26; }else if (X<=20){ X = 35; }else if (X
var X = 55;
if(X <= 10){
X = 26;
}else if (X<=20){
X = 35;
}else if (X <= 30){
X = 12;
}else if(X <= 40){
X = 28;
}else if (X <= 50 ) {
X = 7;
}else if (X <= 60) {
X = 29
}
console.log(X);
var X=55;
如果(X来考虑一下,您可以在不使用任何循环的情况下执行此操作,仍然假设您提供的范围
感谢@TedHopp为我修正了数学错误
const值=[26,35,12,28,7,29];
var x=55;
x=x?(数值[Math.ceil(x/10)-1]| | x):数值[0];
console.log(x);
听起来像是一个简单的查找表,而不是一堆if
语句。考虑:lookup[Math.floor(x/10)]
就是这样,你想在每个条件下给x分配一个固定的随机值吗?是的……我在做一个赌场类型的游戏(用于学校作业),因此,每次单击按钮时,x都会取一个随机值,该值对应于图像中的一些数字…这就是为什么x取的值与以前的值无关您可能不想要Math.floor(x/10)
作为索引,因为这将以不同的方式对待9和10,而不是OP想要的。您可以使用Math.floor((x-1)/10)
或Math.ceil(x/10)-1
@TedHopp:你是对的。我刚刚意识到他们都错了。已经纠正了最后两个。我会用你的解决方案更新。事实上,如果x
是0
,我们仍然有问题。第一个范围比其他范围大一个。我将对该值进行特殊处理。不客气。你通常可以在数学上任意计算当你的范围以某种方式保持一致时。