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
1061 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!

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