gpt4 book ai didi

javascript - 如果 X 在一个数字范围内,我如何为 X 分配一个数字?

转载 作者:行者123 更新时间:2023-12-03 07:05:59 25 4
gpt4 key购买 nike

我正在随机处理,我想要的是,如果(例如)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 次验证(如果)我正在使用 vanilla 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, 35, 12, 28, 7, 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, 35, 12, 28, 7, 29];

var x = 55;

x = values.find((_, i) => x <= ((i + 1) * 10)) || x

console.log(x);

关于javascript - 如果 X 在一个数字范围内,我如何为 X 分配一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63461102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com