使用 forEach 方法時函數無法傳回值
建立函數來檢查物件陣列值時,它意外傳回 undefined。這個問題引起了人們的困惑,我們將深入研究這種行為背後的原因。
問題說明
在提供的程式碼片段中,getByKey 函數使用了 forEach 方法遍歷資料數組。在回調函數內,您嘗試根據條件檢查傳回一個值。但是,此 return 語句僅退出傳遞給 forEach 的匿名函數,而不會退出 getByKey 函數本身。因此, getByKey 函數呼叫會傳回 undefined。
解決方案
有多種方法可以解決此問題:
使用For 循環:
function getByKey(key) { for (var i = 0; i < data.length; i++) { if (data[i].Key === key) { return data[i]; } } }
function getByKey(key) { var found = null; data.forEach(function (val) { if (val.Key === key) { found = val; } }); return found; }
以上是為什麼我的函數在使用'forEach”時返回'undefined”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!