我們將編寫一個 JavaScript 程序,通過將每個元素與目標(biāo)數(shù)字進(jìn)行比較并跟蹤最接近的元素來查找數(shù)組中最接近的數(shù)字。程序?qū)⑹褂醚h(huán)遍歷數(shù)組中的每個元素,并使用條件語句來比較目標(biāo)數(shù)字與當(dāng)前元素之間的差異。如果差值小于當(dāng)前最接近的差值,我們將更新最接近的數(shù)字。該程序的結(jié)果將是給定數(shù)組中最接近目標(biāo)的數(shù)字。
方法
該程序在數(shù)字?jǐn)?shù)組中查找最接近目標(biāo)值的數(shù)字 –
定義一個變量來存儲循環(huán)中目標(biāo)值和當(dāng)前值之間的差異。
將差值設(shè)置為一個非常大的數(shù)字,這樣數(shù)組中的任何數(shù)字都會變小并成為新的最接近的數(shù)字。
循環(huán)遍歷數(shù)字?jǐn)?shù)組,對于每個數(shù)字,計算目標(biāo)值與當(dāng)前數(shù)字之間的絕對差。
如果當(dāng)前差值小于存儲差值,則將存儲差值更新為當(dāng)前差值,并將當(dāng)前數(shù)字存儲為最接近的數(shù)字。
對數(shù)組中的所有數(shù)字重復(fù)此過程。
循環(huán)結(jié)束后,最接近目標(biāo)值的數(shù)字就是變量中存儲的數(shù)字。
示例
這是一個 JavaScript 函數(shù)的示例,它將數(shù)字?jǐn)?shù)組和目標(biāo)數(shù)字作為輸入,并返回數(shù)組中與目標(biāo)數(shù)字最接近的數(shù)字 –
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));
登錄后復(fù)制
說明
函數(shù)findClosest有兩個參數(shù):一個數(shù)字?jǐn)?shù)組和一個目標(biāo)數(shù)字target。
我們創(chuàng)建一個變量closest并將其設(shè)置為等于numbers數(shù)組中的第一個數(shù)字,并假設(shè)這是最接近目標(biāo)的數(shù)字。
我們還創(chuàng)建一個變量closestDiff,它使用Math.abs()計算目標(biāo)數(shù)字和最接近數(shù)字之間的差異。 Math.abs()返回數(shù)字的絕對值,確保差值始終為正。
然后我們使用 for 循環(huán)來迭代 numbers 數(shù)組。對于每次迭代,我們將當(dāng)前數(shù)字存儲在當(dāng)前變量中,并在currentDiff中計算目標(biāo)數(shù)字和當(dāng)前數(shù)字之間的差異。
如果currentDiff小于closestDiff,我們將closest更新為當(dāng)前并且closestDiff 為 currentDiff。
最后,函數(shù)返回最接近目標(biāo)的數(shù)字。
以上就是JavaScript 程序查找數(shù)組中最接近的數(shù)字的詳細(xì)內(nèi)容,更多請關(guān)注www.92cms.cn其它相關(guān)文章!