首頁 >web前端 >js教程 >為什麼即使使用明確 return 語句,我的函數仍傳回未定義?

為什麼即使使用明確 return 語句,我的函數仍傳回未定義?

DDD
DDD原創
2024-11-10 11:15:02255瀏覽

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

使用明確傳回語句傳回未定義的函數

在函數旨在檢查物件陣列中的值但持久回傳的場景中undefined,檢查函數的結構和forEach 方法的用法至關重要。

當 return 語句放置在傳遞給 forEach 的回呼函數而不是實際的 getByKey 函數中時,就會出現問題。這表示無論回呼中的 return 語句如何,函數本身總是會傳回 undefined。

要解決此問題,可以重寫該函數以正確使用return 語句:

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

在這個修改後的程式碼中,return 語句被放置在getByKey 函數中,確保函數傳回找到的對象,或如果未找到鍵則傳回null。

或者,可以使用一個簡單的for 循環效率更高,因為它將迭代數組元素,直到找到所需的項:

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

需要注意的是,修改後的程式碼傳回與鍵對應的物件值,而不僅僅是鍵本身。這為存取所需數據提供了更大的靈活性。

以上是為什麼即使使用明確 return 語句,我的函數仍傳回未定義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn