JavaScript Program to Find closest number in array


We will write a JavaScript program to find the closest number in an array by comparing each element with the target number and keeping track of the closest one. The program will use a loop to go through each element in the array and use a conditional statement to compare the difference between the target number and the current element. If the difference is smaller than the current closest difference, we will update the closest number. The result of this program will be the closest number to the target in the given array.

Approach

This program finds the closest number to a target value in an array of numbers −

  • Define a variable to store the difference between the target value and the current value in the loop.

  • Set the difference to a very high number, so that any number in the array will be smaller and become the new closest number.

  • Loop through the array of numbers, and for each number, calculate the absolute difference between the target value and the current number.

  • If the current difference is smaller than the stored difference, update the stored difference to the current difference and store the current number as the closest number.

  • Repeat the process for all numbers in the array.

  • After the loop, the closest number to the target value is the number stored in the variable.

Example

Here is an example of a JavaScript function that takes an array of numbers and a target number as input and returns the closest number in the array to the target number −

function findClosest(numbers, target) {

   let closest = numbers[0]; 
   // Assume the first number is the closest
   let closestDiff = Math.abs(target - closest); 
   
   // Calculate the difference between the target and closest
   for (let i = 1; i < numbers.length; i++) {
      let current = numbers[i];
      let currentDiff = Math.abs(target - current); 
      
      // Calculate the difference between the target and current number
      if (currentDiff < closestDiff) {
         closest = current; 
         
         // Update the closest number
         closestDiff = currentDiff; 
         
         // Update the closest difference
      }
   }
   return closest;
}
const arr = [45, 23, 25, 78, 32, 56, 12];
const target = 50;

console.log(findClosest(arr, target));

Explanation

  • The function findClosest takes two arguments: an array of numbers and a target number target.

  • We create a variable closest and set it equal to the first number in the numbers array, and assume that this is the closest number to the target.

  • We also create a variable closestDiff which calculates the difference between the target number and the closest number using Math.abs(). Math.abs() returns the absolute value of a number, ensuring that the difference is always positive.

  • We then use a for loop to iterate through the numbers array. For each iteration, we store the current number in the current variable and calculate the difference between the target and current number in currentDiff.

  • If currentDiff is less than closestDiff, we update closest to be current and closestDiff to be currentDiff.

  • Finally, the function returns the closest number to the target.

Updated on: 15-Mar-2023

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements