首页  >  文章  >  web前端  >  如何使用Reduce函数查找数组中最接近的数字?

如何使用Reduce函数查找数组中最接近的数字?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-30 06:02:28782浏览

How to Find the Nearest Number in an Array Using the Reduce Function?

确定数组中最接近的数字

给定一个数组和 -1000 到 1000 范围内的数字,目标是将给定数字更新为数组中最接近的数字。例如,如果给定的数字是 80,并且数组包含 [2, 42, 82, 122, 162, 202, 242, 282, 322, 362],则该数字应修改为 82。

为了实现这一点,我们可以利用 ES5 的reduce 函数。 reduce 函数累积数组中的值并返回单个结果。在这种情况下,我们可以使用它来查找数组中与给定数字具有最小绝对差异的数字。

reduce 函数采用回调作为参数。回调应返回单个值并采用两个参数:前一个值(从数组的第一个元素开始)和正在迭代的当前值。

在回调中,我们计算当前值和目标(给定数字)。然后我们将这个差异与先前值和目标之间的绝对差异进行比较。如果当前值的差异较小,我们将先前的值更新为当前值。

reduce 函数继续迭代数组,累积最接近目标的数字。迭代整个数组后,reduce 函数将返回最接近的数字。

示例:

<code class="js">var counts = [4, 9, 15, 6, 2],
  goal = 5;

var closest = counts.reduce(function(prev, curr) {
  return (Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev);
});

console.log(closest); // Output: 6</code>

以上是如何使用Reduce函数查找数组中最接近的数字?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn