检查值是否存在或位于数组中的特定值之间

时间:2014-11-21 06:22:03

标签: javascript arrays

我想要做的是输入一个值并检查数组中是否存在值,还是位于特定值之间 数组的值并获得较低的范围值索引

例如我有这个数组:

dataArr = [10, 20, 30, 50, 70, 80, 90, 100];

如果

input = 22;

该函数应该从dataArr返回值20和30的索引。

2 个答案:

答案 0 :(得分:1)

var dataArr = [10, 20, 30, 50, 70, 80, 90, 100];

function _find(array, search) {
  var indexes = [],
      len = array.length,
      i,
      index = array.indexOf(search);

  if (~index) {
    return index;
  }

  if (search < array[0]) {
    return -1;  
  }

  for (i = 1; i < len; i++) {
    if (array[i] >= search) {
      return [i - 1, i];
    }    
  }

  return -1;
}


console.log(_find(dataArr, 22));

DEMO:http://jsbin.com/vakanu/1/

但数组应该排序

答案 1 :(得分:0)

您可以使用排序数组来实现它。下面的代码可以解决问题。

 var inputVal = 22
 dataArr = sortThisArray(dataArr); //IF needed
 for (var i=0; i<dataArr.size(); i++)
 {
      if(dataArr[i] > inputVal) //Check if the array value is greater than input value
      {
          if(i < (dataArr.size()-1))
          {
               alert("Range is" + i +"and its last element in array so higher index");
          }
          else //we can find the LOWER BOUND index as i and HIGHER BOUND index as i+1
          {
              alert("Range are" + i +"and"+ i+1);
          }
      }
 }