获取数组JavaScript中最接近的数字

假设我们需要编写一个函数,该函数接受一个数字数组并将一个数字作为输入,并返回该数组中存在的最接近该数字的值。

例如-

closest([45,61,53,98,54,12,69,21], 67); //69
closest([45,61,53,98,54,12,69,21], 64); //61

因此,让我们为其编写代码。

我们将使用Array.prototype.reduce()方法计算差异并从reduce函数返回最小差异,该最小差异的总和与我们正在搜索的数字将成为我们所需的数字。

这是为此的代码-

示例

const closest = (arr, num) => {
   return arr.reduce((acc, val) => {
      if(Math.abs(val - num) < Math.abs(acc)){
         return val - num;
      }else{
         return acc;
      }
   }, Infinity) + num;
}
console.log(closest([45,61,53,98,54,12,69,21], 67));
console.log(closest([45,61,53,98,54,12,69,21], 64));

输出结果

此代码在控制台中的输出将为-

69
61