Bagaimana untuk Mencari Nombor Terdekat dalam Tatasusunan kepada Nilai Diberi?

Linda Hamilton
Lepaskan: 2024-11-03 12:30:02
asal
176 orang telah melayarinya

How to Find the Nearest Number in an Array to a Given Value?

Menentukan Nombor Terdekat dalam Tatasusunan

Andaikan anda mempunyai nilai berangka antara -1000 hingga 1000 dan tatasusunan yang mengandungi integer, seperti sebagai:

[2, 42, 82, 122, 162, 202, 242, 282, 322, 362]
Salin selepas log masuk

Tugas anda ialah mengubah suai nombor yang diberikan untuk memadankan nombor terdekat daripada tatasusunan. Sebagai contoh, jika nombor yang anda berikan ialah 80, ia perlu dilaraskan kepada 82.

Penyelesaian:

Untuk mencapai hasil yang diingini, kita boleh memanfaatkan pengurangan() kaedah untuk mencari nombor yang paling hampir dalam tatasusunan dengan nombor sasaran kami. Kaedah reduce() mengambil fungsi dan nilai penumpuk awal sebagai hujahnya, mengulangi tatasusunan dan menggunakan fungsi pada setiap elemen dan penumpuk.

Berikut ialah contoh pelaksanaan dalam JavaScript ES5:

<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>
Salin selepas log masuk

Dalam contoh ini, kaedah reduce() mengira perbezaan mutlak antara setiap elemen tatasusunan dan nombor sasaran (5). Ia kemudian membandingkan perbezaan mutlak dan menetapkan elemen dengan perbezaan terkecil kepada pembolehubah terdekat. Pembolehubah terdekat memegang nilai 6, iaitu nombor terdekat kepada 5 dalam tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nombor Terdekat dalam Tatasusunan kepada Nilai Diberi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan