确定数组中最接近的数字
给定一个数组和 -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中文网其他相关文章!