微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果X在数字范围内,如何为X分配数字?

如何解决如果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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?