Rumah > hujung hadapan web > tutorial js > Mengapa Fungsi Saya Kembali `undefined` Apabila Menggunakan `forEach`?

Mengapa Fungsi Saya Kembali `undefined` Apabila Menggunakan `forEach`?

Mary-Kate Olsen
Lepaskan: 2024-11-10 04:45:02
asal
513 orang telah melayarinya

Why Does My Function Return `undefined` When Using `forEach`?

Fungsi Gagal Mengembalikan Nilai Apabila Menggunakan Kaedah forEach

Setelah mencipta fungsi untuk memeriksa nilai tatasusunan objek, ia secara tidak dijangka mengembalikan yang tidak ditentukan. Isu ini telah mencetuskan kekeliruan dan kami akan menyelidiki sebab di sebalik tingkah laku ini.

Penjelasan Masalah

Dalam coretan kod yang disediakan, fungsi getByKey menggunakan kaedah forEach untuk melintasi tatasusunan data. Di dalam fungsi panggil balik, anda cuba mengembalikan nilai berdasarkan semakan bersyarat. Walau bagaimanapun, penyataan pulangan ini hanya keluar dari fungsi tanpa nama yang diserahkan kepada forEach, bukan fungsi getByKey itu sendiri. Akibatnya, undefined dikembalikan daripada panggilan fungsi getByKey.

Penyelesaian

Terdapat beberapa cara untuk menyelesaikan isu ini:

  1. Gunakan For Loop: Gantikan forEach dengan for tradisional. Pendekatan ini membolehkan anda mengembalikan nilai yang diingini daripada gelung itu sendiri.

    function getByKey(key) {    
        for (var i = 0; i < data.length; i++) {
            if (data[i].Key === key) {
               return data[i];
            }
        }
    }
    Salin selepas log masuk
  2. Simpan Hasil dalam Pembolehubah: Dalam fungsi panggil balik, tetapkan yang dipadankan nilai kepada pembolehubah dan kembalikan pembolehubah itu daripada getByKey fungsi.

    function getByKey(key) {    
        var found = null;
        data.forEach(function (val) {
            if (val.Key === key) {
                found = val;
            }
        });
        return found;
    }
    Salin selepas log masuk

Dengan melaksanakan penyelesaian ini, anda memastikan bahawa fungsi getByKey mengembalikan nilai yang dikehendaki dengan betul apabila padanan ditemui.

Atas ialah kandungan terperinci Mengapa Fungsi Saya Kembali `undefined` Apabila Menggunakan `forEach`?. 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