首頁 > web前端 > js教程 > 主體

為什麼我的函數在使用'forEach”時返回'undefined”?

Mary-Kate Olsen
發布: 2024-11-10 04:45:02
原創
495 人瀏覽過

Why Does My Function Return `undefined` When Using `forEach`?

使用 forEach 方法時函數無法傳回值

建立函數來檢查物件陣列值時,它意外傳回 undefined。這個問題引起了人們的困惑,我們將深入研究這種行為背後的原因。

問題說明

在提供的程式碼片段中,getByKey 函數使用了 forEach 方法遍歷資料數組。在回調函數內,您嘗試根據條件檢查傳回一個值。但是,此 return 語句僅退出傳遞給 forEach 的匿名函數,而不會退出 getByKey 函數本身。因此, getByKey 函數呼叫會傳回 undefined。

解決方案

有多種方法可以解決此問題:

  1. 使用For 循環:

    function getByKey(key) {    
        for (var i = 0; i < data.length; i++) {
            if (data[i].Key === key) {
               return data[i];
            }
        }
    }
    登入後複製
    使用For 循環:
  2. 將forEach 替換為傳統的for 迴圈。這種方法允許您從循環本身傳回所需的值。
  3. function getByKey(key) {    
        var found = null;
        data.forEach(function (val) {
            if (val.Key === key) {
                found = val;
            }
        });
        return found;
    }
    登入後複製
    將結果儲存在變數中:
  4. 在回呼函數中,指派相符的value 到一個變數並從getByKey 傳回該變數

透過實作這些解決方案,您可以確保getByKey 函數在找到匹配項時正確傳回所需的值。

以上是為什麼我的函數在使用'forEach”時返回'undefined”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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