给定一个均匀分布的整数数组,找到整数落在哪 2 个值之间

Given an evenly spaced array of integers, find between which 2 values an integer falls

本文关键字:整数 之间 数组 一个 分布      更新时间:2023-09-26

嗨,我在用javascript编写一些逻辑时遇到了一些麻烦给定数组 (arr1) 和测试值(测试)

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

对于 test=15,返回值 3,其中 test<5 = 1,512=2,依此类推。test 可以是介于 1 和 31 之间的任何整数(包括 1 和 31)。

谢谢!

您可以做一个简单的 for 循环,如果数字小于第 i 个单元格上的数字,您将重新生成 i。

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

试试这个:

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