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 :
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]; } } }
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; }
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!