Всем привет.
Есть такая задача. Допустим, есть число 150. Есть массив с числами [145, 5, 7, 148, 161,190,153 и т.д.].
Каким образом можно узнать ближайшее меньшее и ближайшее большее число? (В данном примере это должны быть числа 148 и 153.) Я встрял ч.г. с этим вопросом. Заранее всем спасибо.
Каким образом можно узнать ближайшее меньшее и ближайшее большее число?
Пройтись по массиву, сравнивая каждое число, и обновляя одно из ближайших, если его надо обновить, no magic here
var closestLeft,
closestRight,
data = [145, 5, 7, 148, 161, 190, 153],
number = 150,
current;
for (var i = 0; i < data.length; i++) {
current = data[i];
if (current < number && (typeof closestLeft === 'undefined' || closestLeft < current)) {
closestLeft = current;
} else if (current > number && (typeof closestRight === 'undefined' || closestRight > current)) {
closestRight = current;
}
}
jquery
awesome link
Код писать не буду, покажу алгоритм (возможно, не самый оптимальный, ручаться за это не стану)
Собственно, все
Сборка персонального компьютера от Artline: умный выбор для современных пользователей