나는이 문제에 대해 몇 번이나 생각났다. 좋은 해결책이 없다.가장 가까운 값을 얻는 것
숫자가 고정 된 간격이 아닌 고정 된 간격 인 myArray
이 있다고 가정합니다. 전체 숫자 (부정적 일 수 있음)를 가져 와서 가장 가까운 배열의 값을 반환 할 수있는 함수를 갖고 싶습니다. 내 예에서는 850
을 반환하고 싶습니다.
나는 바른 길에. 내가 전달 값에 가장 가까운 배열 값 중 어떤 해결하기 위해 upper
및 lower
변수를 사용할 필요가
암 I을 생각하거나 더 효율적인 방법이있다 이것을 달성하고 누군가가 내게 바른 방향으로 찔러 주겠습니까? 여기
는 내가 지금까지 무엇을 가지고 :
var myArray = [0,850,1800,2500,3300];
function snapTo(value){
var upper = -1;
var lower = -1;
// if the value is bigger than the last array value
if(value > myArray[myArray.length-1]){
upper = myArray[myArray.length-1];
lower = myArray[myArray.length-2];
// if the value is smaller than the first array value
} else if(value < myArray[0]){
upper = myArray[1];
lower = myArray[0];
} else {
for(var i = 0, i < myArray.length, i++){
if(value > myArray[i]){
upper = myArray[i];
lower = myArray[i-1];
break;
}
}
}
// x being the index of the closest array value to the one passed in
return myArray[x];
}
snapTo(1200);
http://stackoverflow.com/questions/3561275/using-jquery-how-would-i-find 가장 근접한 일치하는 배열 번호 – jwaliszko