嗨,我在使用javascript写一些逻辑时遇到了一些麻烦 给定一个数组(arr1)和测试值(测试)
arr1 = [5, 12, 19, 27]
test =15
对于test = 15,返回值3,其中测试< 5 = 1,5< test> 12 = 2等。测试可以是1到31之间的任何整数。
谢谢!
答案 0 :(得分:0)
你可以做一个简单的循环,如果数字小于第i个单元格上的数字,你将会重新计算。
如果你从i = 0开始,你只能做3个if-else语句。
答案 1 :(得分:0)
试试这个:
var arr1 = [5, 12, 19, 27];
var test = 15;
var i;
for(i = 0; i < arr1.length && test > arr1[i]; i++);
console.log(i+1);
记录3
。
你的标题是“均匀间隔”,但如果情况确实如此(27
应为26
),则你的数组会有轻微错误。
但是,如果数组 均匀分布,则可以在没有循环的情况下执行此操作:
// Assuming the array = [5, 12, 19, 26];
var test = 15;
console.log(Math.ceil((test - 5)/7)+1);
所以,基本上:
Math.ceil((test - startingNumber) / spacing)+1