Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Mencari Nombor Terhampir dalam Tatasusunan kepada Nilai Diberi?

Bagaimanakah Saya Boleh Mencari Nombor Terhampir dalam Tatasusunan kepada Nilai Diberi?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 17:52:31605semak imbas

How Can I Find the Closest Number in an Array to a Given Value?

Mencari Nombor Terhampir dalam Tatasusunan

Memandangkan nombor dalam julat tertentu, matlamatnya adalah untuk menentukan nombor terdekat dalam tatasusunan . Katakan nombor yang diberikan boleh berjulat dari -1000 hingga 1000.

Masalahnya:

Kami mempunyai susunan nombor, seperti:

[2, 42, 82, 122, 162, 202, 242, 282, 322, 362]

Dan kami ingin mencari nombor dalam tatasusunan yang paling hampir dengan nilai yang diberikan, contohnya 80.

Penyelesaian: Menggunakan Kaedah Array.reduce()

Kita boleh menggunakan kaedah Array.reduce() untuk menyelesaikan masalah ini. Kaedah reduce() menggunakan fungsi pengurang pada setiap elemen tatasusunan, mengumpul hasil menjadi satu nilai.

Berikut ialah penyelesaian JavaScript menggunakan reduce():

<code class="js">var counts = [2, 42, 82, 122, 162, 202, 242, 282, 322, 362],
    goal = 80;

var closest = counts.reduce(function(prev, curr) {
  return (Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev);
});

console.log(closest); // outputs: 82</code>

Dalam ini penyelesaian, kami menggunakan kaedah reduce() untuk membandingkan perbezaan mutlak antara setiap elemen tatasusunan dan nombor yang diberikan. Elemen dengan perbezaan mutlak terkecil diperuntukkan kepada pembolehubah yang paling hampir.

Akhir sekali, kami log nilai yang paling hampir dengan konsol, yang dalam contoh ini ialah 82, nombor paling hampir kepada 80 dalam tatasusunan.

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

Kenyataan:
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