Freecodecamp: Herausforderung [Zugriff auf mehrdimensionale Arrays mit Indizes] Fehlerbehebung

Erstellt am 8. Aug. 2016  ·  10Kommentare  ·  Quelle: freeCodeCamp/freeCodeCamp

Fordern Sie den Zugriff auf mehrdimensionale Arrays mit Indizes heraus
hat ein Problem.

User Agent ist: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 .
Bitte beschreiben Sie, wie dieses Problem reproduziert werden kann, und fügen Sie nach Möglichkeit Links zu Screenshots hinzu.
Ich habe gerade myData = 4 + 4 verwendet, um myData = 8 zu erhalten, und ich habe die Herausforderung auf diese Weise gelöst. Wenn ich mich nicht irre, ist das ein Fehler, soo ...

Mein 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

Hilfreichster Kommentar

@ Pablo152 danke für das Problem. Sie haben Recht, das ist eine Art Fehler. Mmm, um diese Art von Code zu fangen, könnte es schwierig sein. Wir könnten in zwei Tests hinzufügen:

  1. Der Standardcode ist var myData = myArray[0][0]; damit wir überprüfen können, ob sie zumindest die Nullen in etwas anderes ändern.
  2. Stellen Sie sicher, dass es kein myData = <some number> dh einen regulären Ausdruck für /myData = \d/ oder ähnliches.

cc / @ FreeCodeCamp / Issue-Moderatoren

Alle 10 Kommentare

@ Pablo152 danke für das Problem. Sie haben Recht, das ist eine Art Fehler. Mmm, um diese Art von Code zu fangen, könnte es schwierig sein. Wir könnten in zwei Tests hinzufügen:

  1. Der Standardcode ist var myData = myArray[0][0]; damit wir überprüfen können, ob sie zumindest die Nullen in etwas anderes ändern.
  2. Stellen Sie sicher, dass es kein myData = <some number> dh einen regulären Ausdruck für /myData = \d/ oder ähnliches.

cc / @ FreeCodeCamp / Issue-Moderatoren

@erictleung Einer oder beide dieser Tests können mit dem Test You should be using bracket notation to read the value from myArray kombiniert werden, um Unordnung im Bereich der Testnachrichten zu vermeiden, da sie auf dieselbe Bedingung abzielen.

@erictleung Ich stimme @BKinahan zu - da wir weitere Tests hinzufügen, um verschiedene auftretende Testwand eingeschüchtert werden.

@QuincyLarson @BKinahan klingt gut! Ich denke, wir können den You should be using bracket notation to read the value from myArray -Test einfach ergänzen, indem wir überprüfen, ob die Klammer nicht myArray[0][0] . Das sollte ausreichen, um diesen Eckfall zu erfassen.

@erictleung Ich denke, wir brauchen sowohl Ihren obigen Test als auch den oben genannten regulären Ausdruck für / myData = \ d /, weil ich myData = [2] [2] setzen kann; und führen Sie immer noch den schändlichen Code myData = 4+4 , um die Herausforderung zu bestehen. Wenn Sie damit einverstanden sind, werde ich versuchen, den Test zu aktualisieren, um sowohl eine Änderung von myData [0] [0] als auch des regulären Ausdrucks festzustellen.

@dhcodes klingt vernünftig. Versuchen Sie, wie /myData = \d/ sucht, wird der Fall von myData = 4 + 4 nicht abgedeckt. Sehen Sie also nach, ob Sie dies auch berücksichtigen können. Vielen Dank!

@dhcodes sagte, er arbeite nicht daran, also habe ich es aufgegriffen 😄

Während die 4 + 4-Lösung die Herausforderung löst, wäre der richtige Lösungsansatz basierend auf den Anweisungen: "Wählen Sie mithilfe der Klammernotation ein Element aus myArray so aus, dass myData gleich 8 ist":

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

// Ändere nur den Code unterhalb dieser Zeile.
var myData = myArray [2] [1];

myArray [2] [1];

schönes Thema, das ich lerne,

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen