获取数组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

以上是 获取数组JavaScript中最接近的数字 的全部内容, 来源链接: utcz.com/z/352566.html

回到顶部