Home > Web Front-end > JS Tutorial > JavaScript program to find the closest number in an array

JavaScript program to find the closest number in an array

王林
Release: 2023-09-07 16:25:08
forward
1501 people have browsed it

JavaScript 程序查找数组中最接近的数字

We will write a JavaScript program to find the closest number in an array by comparing each element to a target number and keeping track of the closest element. The program will use a loop to iterate 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 less than the current closest difference, we update the closest number. The result of this program will be the number in the given array that is closest to the target.

method

This program finds the number closest to the 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 large number so that any number in the array becomes smaller and becomes 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 less than the stored difference, update the stored difference to the current difference and store the current number as the closest number.

  • Repeat this process for all numbers in the array.

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

Example

This is an example of a JavaScript function that takes as input an array of numbers and a target number and returns the number in the array that is closest 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));
Copy after login

illustrate

  • Function findClosest has two parameters: 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, assuming 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.

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

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

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

The above is the detailed content of JavaScript program to find the closest number in an array. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template