我有一段代码(我认为这是非常低效和糟糕的;虽然我可能是错的。),它检查一个变量是否在由其他一些变量确定的范围内,就像这样;
if ((a >= (x.eq(0) && y.eq(0)) || (a >= x.eq(1) && y.eq(1)) ... || (a >= x.eq(n) && y.eq(n)))) {
// code here
}
(我可能在问题中弄错了括号的数量,但代码本身有效。)
其中 n 是数组 x 和 y 中数字的总数.. 显然,if 条件看起来非常非常大,我相信它未优化且“糟糕”。有什么我可以用来缩短病情的吗?如果上面的块不可读,我想要伪代码:
检查 a 是否在 x(0) 和 y(0) 之间。
如果是真的,做事。
否则检查 a 是否在 x(1) 和 y(1) 之间。
如果是真的,做事。
否则检查...如果 a 在 x(n) 和 y(n) 之间。
如果是真的,做事。
别的什么都不做。
你想要这样的东西吗?
// try every number between 0 and n
for (var i = 0; i++, i < n) {
// generic version of your condition
if (a >= (x.eq(i) && y.eq(i)) {
// do the things
break; // break the loop so the things are only done once
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句