Rumah > hujung hadapan web > tutorial js > Mengapa Fungsi Saya Kembali Tidak Ditakrifkan Walaupun dengan Penyata Pulangan Eksplisit?

Mengapa Fungsi Saya Kembali Tidak Ditakrifkan Walaupun dengan Penyata Pulangan Eksplisit?

DDD
Lepaskan: 2024-11-10 11:15:02
asal
235 orang telah melayarinya

Why Does My Function Return Undefined Even with an Explicit Return Statement?

Fungsi Mengembalikan Tidak Ditakrifkan dengan Penyataan Pulangan Eksplisit

Dalam senario di mana fungsi bertujuan untuk menyemak nilai dalam tatasusunan objek tetapi secara berterusan mengembalikan tidak ditentukan, adalah penting untuk memeriksa struktur fungsi dan penggunaan forEach kaedah.

Masalah timbul apabila pernyataan pemulangan diletakkan dalam fungsi panggil balik yang dihantar kepada forEach dan bukannya fungsi getByKey sebenar. Ini bermakna bahawa fungsi itu sendiri sentiasa kembali tidak ditentukan, tanpa mengira pernyataan pulangan dalam panggilan balik.

Untuk menyelesaikan isu ini, fungsi boleh ditulis semula untuk menggunakan pernyataan pulangan dengan betul:

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

Dalam kod yang disemak ini, penyata pemulangan diletakkan dalam fungsi getByKey, memastikan fungsi itu mengembalikan sama ada objek yang ditemui atau null jika kunci tidak dijumpai.

Sebagai alternatif, gelung mudah untuk boleh digunakan untuk kecekapan yang lebih tinggi, kerana ia akan berulang ke atas elemen tatasusunan sehingga item yang dikehendaki ditemui:

function getByKey(key) {
    for (var i = 0; i < data.length; i++) {
        if (data[i].Key === key) {
            return data[i];
        }
    }
}
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa kod yang disemak mengembalikan nilai objek yang sepadan dengan kunci, dan bukannya kunci itu sendiri. Ini memberikan lebih fleksibiliti dalam mengakses data yang dikehendaki.

Atas ialah kandungan terperinci Mengapa Fungsi Saya Kembali Tidak Ditakrifkan Walaupun dengan Penyata Pulangan Eksplisit?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan