Maison  >  Article  >  interface Web  >  Pourquoi ma fonction renvoie-t-elle un résultat indéfini même avec une instruction de retour explicite ?

Pourquoi ma fonction renvoie-t-elle un résultat indéfini même avec une instruction de retour explicite ?

DDD
DDDoriginal
2024-11-10 11:15:02175parcourir

Why Does My Function Return Undefined Even with an Explicit Return Statement?

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!

Déclaration:
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