A function that can be used in JavaSccript to get the lower, higher, and closest number. The function receives two parameters: an array (or object) with numbers, and the number. Compares that number with the numbers from array /object, than returns an object with three elements: the "lower", "higher", and "closest" number.
Here's the function:
// retutrs an object with the number from "nums": lower, higher and closest to nr
// "nums" can be an Array with numbers [-2, 0, 3], or an object {'n1': -1, 'n2': 1, 'n3': 2}
function closestLowerHigherNr(nums, nr) {
 // JavaScript & jQuery Course - https://coursesweb.net/javascript/
  // Gets into an Array the values from "nums" array /object, and sorts from lowest to highest
  var vnums = [];
  for each(var val in nums) vnums.push(val);
  vnums.sort(function(a,b){return a - b;});

  var nr_vnums = vnums.length;      // number of elements in vnums

  // sets the object that will be returned, initially with the lowest and highest number from vnums
  var re_obj = {'lower': Math.min(vnums[0], nr), 'higher': Math.max(vnums[nr_vnums-1], nr), 'closest': nr};

  // traverse the numbers, stores in re_obj the number immediately lower and higher than nr
  for(var i=0; i<nr_vnums; i++){
    if(nr > vnums[i]) re_obj['lower'] = vnums[i];
    else if(nr <= vnums[i]){
      // if the current number from vnums is equal to nr, or immediately higher, stores that number
      // and stops the for each() loop
      re_obj['higher'] = vnums[i];
      break;
    }
  }

  // here it gets the closest number to nr
  // (the number ('lower' or 'higher') with the lowest diferrence between its value and nr)
  re_obj['closest'] = (Math.abs(nr - re_obj['lower']) < Math.abs(re_obj['higher'] - nr)) ? re_obj['lower'] : re_obj['higher'];

  return re_obj;
}
Example usage closestLowerHigherNr() function.
<script type="text/javascript"><!--
// retutrs an object with the number from "nums": lower, higher and closest to nr
// "nums" can be an Array with numbers [-2, 0, 3], or an object {'n1': -1, 'n2': 1, 'n3': 2}
function closestLowerHigherNr(nums, nr) {
 // JavaScript & jQuery Course - https://coursesweb.net/javascript/
  // Gets into an Array the values from "nums" array /object, and sorts from lowest to highest
  var vnums = [];
  for each(var val in nums) vnums.push(val);
  vnums.sort(function(a,b){return a - b;});

  var nr_vnums = vnums.length;      // number of elements in vnums

  // sets the object that will be returned, initially with the lowest and highest number from vnums
  var re_obj = {'lower': Math.min(vnums[0], nr), 'higher': Math.max(vnums[nr_vnums-1], nr), 'closest': nr};

  // traverse the numbers, stores in re_obj the number immediately lower and higher than nr
  for(var i=0; i<nr_vnums; i++){
    if(nr > vnums[i]) re_obj['lower'] = vnums[i];
    else if(nr <= vnums[i]){
      // if the current number from vnums is equal to nr, or immediately higher, stores that number
      // and stops the for each() loop
      re_obj['higher'] = vnums[i];
      break;
    }
  }

  // here it gets the closest number to nr
  // (the number ('lower' or 'higher') with the lowest diferrence between its value and nr)
  re_obj['closest'] = (Math.abs(nr - re_obj['lower']) < Math.abs(re_obj['higher'] - nr)) ? re_obj['lower'] : re_obj['higher'];

  return re_obj;
}

// Example
var numbers = [-8, -3, 0, 5.8, 12, 9, 2.1];
var test1 = closestLowerHigherNr(numbers, -6);
var test2 = closestLowerHigherNr(numbers, 3);

// the numbers are strored into an object
var nums_obj = {'n1':-8, 'n2':0, 'n3':12, 'n4':5.8, 'n5':9, 'n6':2.1};
var test3 = closestLowerHigherNr(nums_obj, 9);

// see the values in test1, test2, test3
alert('lower: '+test1.lower+ ', higher: '+test1.higher+ ', closest: '+ test1.closest);
  // Result: lower: -8, higher: -3, closest: -8

alert('lower: '+test2.lower+ ', higher: '+test2.higher+ ', closest: '+ test2.closest);
  // Result: lower: 2.1, higher: 5.8, closest: 2.1

alert('lower: '+test3.lower+ ', higher: '+test3.higher+ ', closest: '+ test3.closest);
  // Result: lower: 5.8, higher: 9, closest: 9
//-->
</script>
This function works also if "nr" is lower, or higher than any number in array /object.
Example:
<script type="text/javascript"><!--
// here add the closestLowerHigherNr() function

var numbers = [-8, 2, 12];
var test4 = closestLowerHigherNr(numbers, -23);      // -23 is lower than any number in "numbers"
var test5 = closestLowerHigherNr(numbers, 18);       // 18 is higher than any number in "numbers"

// see the values in test4, test5
alert('lower: '+test4.lower+ ', higher: '+test4.higher+ ', closest: '+ test4.closest);
  // Result: lower: -28, higher: -8, closest: -23
alert('lower: '+test5.lower+ ', higher: '+test5.higher+ ', closest: '+ test5.closest);
  // Result: lower: 12, higher: 18, closest: 12
//-->
</script>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which HTML5 tag defines marked text? (can be used to highlight parts of text)
<mark> <embed> <span>
<p>Free corses: <mark>coursesweb.net</mark> for Web Development.</p>
Which CSS pseudo-class adds a style to an element when the mouse is over it?
:focus :hover :active
a:hover {
  font-weight: bold;
  color: #00da01;
}
Click on the function which returns a string value that represents the number rounded to the x digits after the decimal point.
toPrecision(x) toFixed(x) floor(x)
var num = 12.34567;
num = num.toFixed(2);
alert(num);       // 12.35
Indicate the PHP function which reads an entire file into an array.
[) file() readfile()
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
Get Lower, Higher and Closest Number in JavaScript

Last accessed pages

  1. Register and show online users and visitors (24431)
  2. Insert, Select and Update NULL value in MySQL (27923)
  3. Recursive function to create Multi-Level Menu in PHP (7138)
  4. Display data from PHP Array, or MySQL in HTML table (13970)
  5. PHP Unzipper - Extract Zip, Rar Archives (1784)

Popular pages this month

  1. Read Excel file data in PHP - PhpExcelReader (524)
  2. PhpSpreadsheet - Read, Write Excel and LibreOffice Calc files (451)
  3. Get Attribute (ID, Class, Name, Title, Src) with jQuery (329)
  4. Insert, Select and Update NULL value in MySQL (319)
  5. PHP getElementById and getElementsByTagName (308)