Maison > Article > interface Web > Pourquoi ma fonction renvoie-t-elle un résultat indéfini même avec une instruction de retour explicite ?
Fonction renvoyant un élément non défini avec une instruction de retour explicite
Dans un scénario où une fonction est destinée à vérifier les valeurs d'un tableau d'objets mais renvoie de manière persistante indéfini, il est crucial d'examiner la structure de la fonction et l'utilisation de la méthode forEach.
Le problème survient lorsque l'instruction return est placée dans la fonction de rappel transmise à forEach au lieu de la fonction getByKey réelle. Cela signifie que la fonction elle-même renvoie toujours undefined, quelle que soit l'instruction return dans le rappel.
Pour résoudre ce problème, la fonction peut être réécrite pour utiliser correctement l'instruction return :
function getByKey(key) { var found = null; data.forEach(function (val) { if (val.Key === key) { found = val; } }); return found; }
Dans ce code révisé, l'instruction return est placée dans la fonction getByKey, garantissant que la fonction renvoie soit l'objet trouvé, soit null si la clé n'est pas trouvée.
Alternativement, une simple boucle for peut être utilisée pour une plus grande efficacité, car il parcourrait les éléments du tableau jusqu'à ce que l'élément souhaité soit trouvé :
function getByKey(key) { for (var i = 0; i < data.length; i++) { if (data[i].Key === key) { return data[i]; } } }
Il est important de noter que le code révisé renvoie la valeur de l'objet correspondant à la clé, plutôt que simplement la clé elle-même . Cela offre une plus grande flexibilité pour accéder aux données souhaitées.
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!