Maison > interface Web > js tutoriel > Pourquoi ma fonction renvoie-t-elle « undéfini » lors de l'utilisation de « forEach » ?

Pourquoi ma fonction renvoie-t-elle « undéfini » lors de l'utilisation de « forEach » ?

Mary-Kate Olsen
Libérer: 2024-11-10 04:45:02
original
515 Les gens l'ont consulté

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

La fonction ne parvient pas à renvoyer la valeur lors de l'utilisation de la méthode forEach

Lors de la création d'une fonction pour inspecter les valeurs du tableau d'objets, elle renvoie de manière inattendue un défini. Ce problème a semé la confusion et nous allons examiner les raisons de ce comportement.

Explication du problème

Dans l'extrait de code fourni, la fonction getByKey utilise la méthode forEach pour parcourir le tableau de données. Dans la fonction de rappel, vous tentez de renvoyer une valeur basée sur une vérification conditionnelle. Cependant, cette instruction return ne quitte que la fonction anonyme transmise à forEach, pas la fonction getByKey elle-même. Par conséquent, undefined est renvoyé par l'appel de fonction getByKey.

Solutions

Il existe plusieurs façons de résoudre ce problème :

  1. Utiliser une boucle For : Remplacez forEach par une boucle for traditionnelle. Cette approche vous permet de renvoyer la valeur souhaitée à partir de la boucle elle-même.

    function getByKey(key) {    
        for (var i = 0; i < data.length; i++) {
            if (data[i].Key === key) {
               return data[i];
            }
        }
    }
    Copier après la connexion
  2. Stockez le résultat dans une variable : Dans la fonction de rappel, attribuez la correspondance valeur à une variable et renvoyez cette variable à partir de la fonction getByKey.

    function getByKey(key) {    
        var found = null;
        data.forEach(function (val) {
            if (val.Key === key) {
                found = val;
            }
        });
        return found;
    }
    Copier après la connexion

En implémentant ces solutions, vous vous assurez que la fonction getByKey renvoie correctement la valeur souhaitée lorsqu'une correspondance est trouvée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal