我們將編寫一個 JavaScript 程序,透過將每個元素與目標數字進行比較並追蹤最接近的元素來尋找數組中最接近的數字。程式將使用循環遍歷數組中的每個元素,並使用條件語句來比較目標數字與目前元素之間的差異。如果差值小於目前最接近的差值,我們將更新最接近的數字。該程式的結果將是給定數組中最接近目標的數字。
該程式在數字數組中尋找最接近目標值的數字 -
定義一個變數來儲存循環中目標值和目前值之間的差異。
將差值設為一個非常大的數字,這樣數組中的任何數字都會變小並成為新的最接近的數字。
迴圈遍歷數字數組,對於每個數字,計算目標值與目前數字之間的絕對差。
如果當前差值小於儲存差值,則將儲存差值更新為目前差值,並將目前數字儲存為最接近的數字。
對陣列中的所有數字重複此程序。
循環結束後,最接近目標值的數字就是變數中儲存的數字。
這是一個 JavaScript 函數的範例,它將數字數組和目標數字作為輸入,並傳回數組中與目標數字最接近的數字 -
function findClosest(numbers, target) { let closest = numbers[0]; // Assume the first number is the closest let closestDiff = Math.abs(target - closest); // Calculate the difference between the target and closest for (let i = 1; i < numbers.length; i++) { let current = numbers[i]; let currentDiff = Math.abs(target - current); // Calculate the difference between the target and current number if (currentDiff < closestDiff) { closest = current; // Update the closest number closestDiff = currentDiff; // Update the closest difference } } return closest; } const arr = [45, 23, 25, 78, 32, 56, 12]; const target = 50; console.log(findClosest(arr, target));
函數findClosest有兩個參數:一個數字陣列和一個目標數字target。
#我們建立一個變數closest並將其設定為等於numbers陣列中的第一個數字,並假設這是最接近目標的數字。
我們也建立一個變數closestDiff,它使用Math.abs()計算目標數字和最接近數字之間的差異。 Math.abs()傳回數字的絕對值,確保差值永遠為正。
然後我們使用 for 迴圈來迭代 numbers 陣列。對於每次迭代,我們將當前數字儲存在當前變數中,並在currentDiff中計算目標數字和當前數字之間的差異。
#如果currentDiff小於closestDiff,我們將closest更新為當前並且closestDiff 為currentDiff。
#最後,函數傳回最接近目標的數字。
以上是JavaScript 程式尋找數組中最接近的數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!