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

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

DDD
發布: 2024-11-10 11:15:02
原創
235 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板