首頁 >web前端 >js教程 >如何使用Reduce函數找出數組中最接近的數字?

如何使用Reduce函數找出數組中最接近的數字?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 06:02:28791瀏覽

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

確定數組中最接近的數字

給定一個數組和-1000 到1000 範圍內的數字,目標是將給定一個數組和-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