Rumah > hujung hadapan web > tutorial js > Mengapa Fungsi `forEach` Saya Mengembalikan `tidak ditentukan` dalam JavaScript?

Mengapa Fungsi `forEach` Saya Mengembalikan `tidak ditentukan` dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-11-11 17:06:03
asal
1100 orang telah melayarinya

Why Does My `forEach` Function Return `undefined` in JavaScript?

Fungsi dengan forEach Returns Undefined

Kod Asal:

Kod yang disediakan mentakrifkan fungsi , getByKey, bertujuan untuk mencari tatasusunan objek untuk nilai tertentu dan mengembalikan sama ada kunci yang sepadan atau a mesej yang menunjukkan nilai tidak dapat ditemui. Walau bagaimanapun, fungsi secara konsisten mengembalikan tidak ditentukan.

function getByKey(key) {    
    data.forEach(function (i, val) {
        if (data[val].Key === key) {
            return data[val].Key;
        } else {
            return "Couldn't find";
        }
    });
}
Salin selepas log masuk

Memahami Isu:

Isu dengan kod ini terletak pada skop pernyataan pulangan dalam gelung forEach . Pernyataan pulangan keluar dari gelung, bukan fungsi getByKey itu sendiri. Untuk mengembalikan nilai daripada fungsi, ia hendaklah diletakkan di luar gelung.

Penyelesaian:

Salah satu cara untuk menyelesaikannya ialah dengan menetapkan nilai pulangan kepada pembolehubah di dalam gelung dan kemudian kembalikannya daripada fungsi.

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

Sebagai alternatif, anda boleh menggunakan gelung biasa untuk bukannya forEach dan terus kembali daripada fungsi dalam gelung.

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

Atas ialah kandungan terperinci Mengapa Fungsi `forEach` Saya Mengembalikan `tidak ditentukan` dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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