假设我们需要编写一个函数,该函数接受一个数字数组并将一个数字作为输入,并返回该数组中存在的最接近该数字的值。
例如-
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