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; }
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]; } } }
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!