J'essaie de résoudre le problème ci-dessous:
If the array is empty, it should return undefined. If n is out of range, it should return undefined. If the property at the given key is not an array, it should return undefined. If there is no property at the key, it should return undefined.
3 Réponses :
s'avère que, au lieu d'un pour une boucle, j'ai besoin d'utiliser une boucle régulière.
function getNthElementOfProperty(obj, key, n) {
if(obj[key] === undefined){
return undefined
} else if(Array.isArray(obj[key]) === false){
return undefined
} else if(obj[key].length === 0){
return undefined
}
for(var i = 0; i < obj[key].length; i++){
if(i === n){
return obj[key][i]
}
}
return undefined;
};
Pourquoi utilisez-vous une boucle? Accès à un index en dehors d'un retour de tableau non défini code>.
Enlevez simplement la boucle. JavaScript retourne si vous Voulez-vous savoir pourquoi votre boucle n'a pas fonctionné: p> non défini code> si l'index n'est pas à l'intérieur du tableau. Vous pouvez également vous débarrasser de si (array.length === 0) code> car l'index ne peut pas être à l'intérieur d'une matrice de longueur 0. pour (let i in matry) code> attribue l'index sous forme de chaîne à i code>. Le === code> Opérateur vérifie les types et voit que '0'! == 0 code> par exemple. P> p>
J'ai compris. De plus, la déclaration de retour que vous m'avez donné devrait être de retour Obj [clé] [n].
Fonction simple avec toutes la validation Pas besoin de boucle, vous pouvez utiliser hasowroperty code> au lieu de obj [clé] === indéfini code>
Avez-vous des exemples de données?
Pouvons-nous ignorer les backslashes et les trois premiers caractères?
Cette boucle n'a aucun sens. Il suffit d'utiliser
retour obj [clé] [n] code>?J'ai enlevé les commentaires et j'ai supprimé les trois premiers caractères. Également fourni une réponse en bas.
De plus, je ne suis pas sûr de savoir pourquoi les barres anti-backs ont été ajoutées là-bas. J'ai copié et collé directement de la console.