1

Hi I'm having a bit of trouble writing some logic with javascript Given an array (arr1) and test value (test)

arr1 = [5, 12, 19, 27]
test =15

Return a value of 3 for test=15, where test<5 = 1, 5< test >12=2, etc. Test can be any integer between 1 and 31 inclusive.

Thanks!

4

2 回答 2

0

你可以做一个简单的 for 循环,如果数字小于第 i 个单元格上的数字,你将 retyrn i。

如果从 i=0 开始,则只能执行 3 个 if-else 语句。

于 2013-01-30T08:50:22.667 回答
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
于 2013-01-30T08:51:04.240 回答