確定數組中最接近的數字
給定一個數組和-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中文網其他相關文章!