如何解决如果X在数字范围内,如何为X分配数字?
我正在处理随机数据,我想要的是(例如)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 <= 30){
X = 12;
}else if(X <= 40){
X = 28;
}else if (X <= 50 ) {
X = 7;
}else if (X <= 60) {
X = 29
}
console.log(X);
问题是,如果您继续这样操作,则应该进行36次验证(如果有) 我正在使用香草JS
解决方法
想一想,即使假定您提供的范围,您也可以完全不进行任何循环来完成此操作。
感谢@TedHopp我的数学错误修复程序!
const values = [26,35,12,28,7,29];
var x = 55;
x = x ? (values[Math.ceil(x/10)-1] || x) : values[0];
console.log(x);
原始答案
假设您实际上有10个范围,则可以使用一个可能分配的值的数组,然后迭代该数组直到找到所需的范围。
赞:
const values = [26,29];
var x = 55;
for (let i = 0; i < values.length; i++) {
if (x <= ((i + 1) * 10)) {
x = values[i];
break;
}
}
console.log(x);
或者您可以使用.find()
使其更加简洁。
const values = [26,29];
var x = 55;
x = values.find((_,i) => x <= ((i + 1) * 10)) || x
console.log(x);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。