Heim > Web-Frontend > js-Tutorial > Warum gibt meine Funktion trotz einer expliziten Return-Anweisung Undefiniert zurück?

Warum gibt meine Funktion trotz einer expliziten Return-Anweisung Undefiniert zurück?

DDD
Freigeben: 2024-11-10 11:15:02
Original
235 Leute haben es durchsucht

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

Funktion, die undefiniert mit expliziter Return-Anweisung zurückgibt

In einem Szenario, in dem eine Funktion Werte in einem Array von Objekten überprüfen soll, aber dauerhaft zurückkehrt undefiniert ist, ist es wichtig, die Struktur der Funktion und die Verwendung der forEach-Methode zu untersuchen.

Das Problem tritt auf, wenn die Return-Anweisung in der an forEach übergebenen Callback-Funktion und nicht in der eigentlichen getByKey-Funktion platziert wird. Dies bedeutet, dass die Funktion selbst immer undefiniert zurückgibt, unabhängig von der Return-Anweisung im Rückruf.

Um dieses Problem zu beheben, kann die Funktion umgeschrieben werden, um die Return-Anweisung korrekt zu verwenden:

function getByKey(key) {
    var found = null;
    data.forEach(function (val) {
        if (val.Key === key) {
            found = val;
        }
    });
    return found;
}
Nach dem Login kopieren

In diesem überarbeiteten Code wird die Return-Anweisung in die getByKey-Funktion eingefügt, um sicherzustellen, dass die Funktion entweder das gefundene Objekt oder null zurückgibt, wenn der Schlüssel nicht gefunden wird.

Alternativ kann eine einfache for-Schleife für verwendet werden höhere Effizienz, da über die Array-Elemente iteriert wird, bis das gewünschte Element gefunden wird:

function getByKey(key) {
    for (var i = 0; i < data.length; i++) {
        if (data[i].Key === key) {
            return data[i];
        }
    }
}
Nach dem Login kopieren

Es ist wichtig zu beachten, dass der überarbeitete Code den Objektwert zurückgibt, der dem Schlüssel entspricht, und nicht nur den Schlüssel selbst . Dies bietet eine größere Flexibilität beim Zugriff auf die gewünschten Daten.

Das obige ist der detaillierte Inhalt vonWarum gibt meine Funktion trotz einer expliziten Return-Anweisung Undefiniert zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage