이 같은 배열이있는 경우 :Javascript에서 가장 가까운 값을 배열에서 가져 오는 정식 방법, 값 및 정렬 된 배열이 있습니까?
var array = [1, 3, 4, 5, 9, 10];
을 그리고이 같은 값을 가지고 올바른 무엇
var result = getClosestValues(array, value); // [5, 9]
/:
var value = 8;
나는이 결과를 얻으려면을 선호하는 방법은 자바 스크립트 에서이 일을? 아마 어딘가 공식 알고리즘 일 것 같습니다. 어쩌면 이런 식으로 :
var getClosestValues = function(array, value) {
var low, high = 0, value;
for (var i = 0; i < array.length; i++) {
if (low <= value && low < array[i])
low = array[i];
if (high == value && high < array[i])
high = array[i];
};
return [low, high];
}
고마워! 위 및 아래에 가장 가까운 값을 추적 단지 한쪽에서 다른 스캔 그렇지
var getClosestValues = function(a, x) {
var lo = -1, hi = a.length;
while (hi - lo > 1) {
var mid = Math.round((lo + hi)/2);
if (a[mid] <= x) {
lo = mid;
} else {
hi = mid;
}
}
if (a[lo] == x) hi = lo;
return [a[lo], a[hi]];
}
: 어레이가 정렬 크면
배열에 8이 있다면 ... 그냥 반환해야합니까? –
가장 가까운 2 개의 값 또는 가장 가까운 값을'value'의 양쪽에 넣으려고하십니까? 예를 들어'value = 6'가'[4,5]'또는'[5,9]'를 리턴해야합니까? –
배열의 정렬이 보장 되나요? –