Freecodecamp: Défi [Accès aux tableaux multidimensionnels avec index] Résolution d'un bug

Créé le 8 août 2016  ·  10Commentaires  ·  Source: freeCodeCamp/freeCodeCamp

Arrays multidimensionnels Challenge
a un problème.

L'agent utilisateur est: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 .
Veuillez décrire comment reproduire ce problème et inclure des liens vers des captures d'écran si possible.
Je viens d'utiliser myData = 4 + 4 pour obtenir myData = 8 et j'ai résolu le défi de cette façon, si je ne me trompe pas, c'est un bug alors ...

Mon code:


// Setup
var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];

// Only change code below this line.
var myData = myArray[0][0];
myData = 4 + 4;

help wanted

Commentaire le plus utile

@ Pablo152 merci pour le problème. Vous avez raison, c'est une sorte de bogue. Mmm pour attraper ce genre de code, ça pourrait être difficile. Nous pourrions ajouter deux tests:

  1. Le code par défaut est var myData = myArray[0][0]; afin que nous puissions vérifier qu'ils changent au moins les zéros en autre chose.
  2. Vérifiez qu'il n'y a pas de myData = <some number> c'est- /myData = \d/ ou quelque chose de similaire.

cc / @ FreeCodeCamp / modérateurs de problèmes

Tous les 10 commentaires

@ Pablo152 merci pour le problème. Vous avez raison, c'est une sorte de bogue. Mmm pour attraper ce genre de code, ça pourrait être difficile. Nous pourrions ajouter deux tests:

  1. Le code par défaut est var myData = myArray[0][0]; afin que nous puissions vérifier qu'ils changent au moins les zéros en autre chose.
  2. Vérifiez qu'il n'y a pas de myData = <some number> c'est- /myData = \d/ ou quelque chose de similaire.

cc / @ FreeCodeCamp / modérateurs de problèmes

@erictleung Un ou les deux de ces tests peuvent être combinés avec le test You should be using bracket notation to read the value from myArray pour éviter d'ajouter du fouillis à la zone de message de test, car ils ciblent la même condition.

@erictleung Je suis d'accord avec @BKinahan - au fur et à mesure que nous ajoutons des tests pour résoudre divers cas de coin qui se présentent, nous les plaçons derrière le moins de tests possible pour éviter d'intimider les campeurs avec un mur de tests.

@QuincyLarson @BKinahan sonne bien! Je pense que nous pouvons simplement ajouter au test You should be using bracket notation to read the value from myArray en vérifiant que la parenthèse n'est pas myArray[0][0] . Cela devrait être suffisant pour attraper ce cas de coin.

@erictleung Je pense que nous avons besoin à la fois de votre test ci-dessus et de l'expression rationnelle susmentionnée pour / myData = \ d / car je peux définir myData = [2] [2]; et exécutez toujours le code infâme myData = 4+4 pour réussir le défi. Si vous êtes d'accord, je vais essayer de mettre à jour le test pour vérifier à la fois un changement de myData [0] [0] et de l'expression régulière.

@dhcodes semble raisonnable. Comme @QuincyLarson l' a mentionné, essayez de minimiser le nombre de tests que nous devons ajouter, le cas échéant. Donc, pour une expression régulière à la recherche de /myData = \d/ ne couvrirait pas le cas de myData = 4 + 4 alors voyez si vous pouvez également en tenir compte. Merci!

@dhcodes a dit qu'il ne travaillait pas là-dessus, alors je l'ai saisi 😄

Alors que la solution 4 + 4 résout le défi, la bonne façon de résoudre en fonction des directions, "en utilisant la notation entre crochets, sélectionnez un élément de myArray de telle sorte que myData est égal à 8", serait:

// Installer
var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];

// Changer uniquement le code en dessous de cette ligne.
var myData = myArray [2] [1];

myArray [2] [1];

joli sujet que j'apprends,

Cette page vous a été utile?
0 / 5 - 0 notes