Freecodecamp: ES6: Erstellen von Zeichenfolgen mithilfe von Vorlagenliteralen - Testfehler - Erkennt keine Vorlagenzeichenfolgen

Erstellt am 28. Dez. 2017  ·  75Kommentare  ·  Quelle: freeCodeCamp/freeCodeCamp



Name der Herausforderung

https://beta.freecodecamp.org/en/challenges/es6/create-strings-using-template-literals

Fehlerbeschreibung


Die Herausforderung besteht darin, den letzten Test "Vorlagenzeichenfolgen wurden verwendet" nicht zu bestehen.

Browser-Informationen

Browsername, Version:
Betriebssystem: FireFox 57.0 (64-Bit) und Chrome Version 63.0.3239.84 (Official Build) (64-Bit)
Mobil, Desktop oder Tablet: Laptop Windows 10 Professional 64-Bit

Dein Code


`const resultDisplayArray = result.failure.map(x => `<li class="text-warning">${x}</li>`);`

Bildschirmfoto

image

Hilfreichster Kommentar

Bestätigt:

const resultDisplayArray = arr.map((a) => {
  return `<li class="text-warning">${a}</li>`
});

funktioniert
aber

const resultDisplayArray = [
  `<li class="text-warning">${arr[0]}</li>`,
  `<li class="text-warning">${arr[1]}</li>`,
  `<li class="text-warning">${arr[2]}</li>`
];

funktioniert nicht. In der Lektion wird die Karte nicht erwähnt - und die Karte wird erst im Abschnitt "Funktionale Programmierung" nach diesem Abschnitt in den Lehrplan aufgenommen.

Alle 75 Kommentare

Update: Nach einigen Nachforschungen durch einen unserer Camper scheint der Staging-Zweig das Problem zu beheben, wurde jedoch nicht auf die Beta portiert.

Ich kann bestätigen, dass es bei der Inszenierung funktioniert, aber ich denke, die Beschreibung könnte etwas klarer sein.

Hatte ein ähnliches Problem. Stimmen Sie mit systimotic überein. Textänderung in den vorgeschlagenen Testfällen wie folgt:

Aktuell: Vorlagenzeichenfolgen wurden verwendet
Vorgeschlagen: Mit map () wurden Vorlagenzeichenfolgen verwendet.

Ich habe mich heute damit befasst, die Herausforderung zeigt nicht an, dass die Verwendung von .map () erforderlich ist, und ich konnte es mit und ohne Verwendung von .map () lösen / vervollständigen. Deshalb glaube ich nicht, dass dies geändert werden muss?

Paul (@PolarisTLX) und Kyle (@ jklemon17)

Ich habe dies kürzlich mit der Lösung von @mstellaluna überprüft und es auch ohne Verwendung von map gelöst, wie es @PolarisTLX getan hat. Die Verwendung von Karten ist wahrscheinlich der prägnanteste Weg, um diese Herausforderung zu meistern, aber ich denke, wir sollten es den Benutzern überlassen, wie sie vorgehen sollen. Ich bin nicht sicher, ob die Beschreibung geändert werden muss, da dem Benutzer mitgeteilt wird, was die Funktion makeList zurückgeben soll.

Scheint, als ob map jetzt die einzige Übergabemethode in der neuen Version ist . Die folgenden 2 Methoden sind fehlgeschlagen: "Vorlagenzeichenfolgen wurden verwendet":

const resultDisplayArray = [
  `<li class="text-warning">${arr[0]}</li>`,
  `<li class="text-warning">${arr[1]}</li>`,
  `<li class="text-warning">${arr[2]}</li>`
];
const resultDisplayArray = [];
  for (let i = 0; i < arr.length; i++) {
    resultDisplayArray.push(`<li class="text-warning">${arr[i]}</li>`)
  }

@yoizfefisch , du hast recht. Beide sind gültige Lösungen, aber sie bestehen nicht.

Der Testfall für Vorlagenliterale scheint nicht flexibel genug zu sein:

getUserInput => assert(getUserInput('index').match(/\\`<li class=\"text-warning\">\\$\\{\\w+\\}<\\/li>\\`/g)

Die Regex erwartet keine Klammern vor der nächsten geschweiften Klammer, und Ihre Lösungen führen dazu, dass der Test fehlschlägt. Sollte eine einfache Lösung sein. Ich bin nicht der Beste mit Regex, aber dies sollte verschiedene Lösungen wie die oben genannten ermöglichen:

\`<li \s*class\s*=\s*(\"\s*text-warning\s*\"|\'\s*text-warning\s*\')\s*>\s*\$\s*\{(\s*\w+\s*|\s*\w+\s*\[\s*[\w]+\s*\]\s*)\}\s*<\s*\/li\s*>\`

Ich bin mir nicht sicher, wo genau einige Zeichen mit zwei Schrägstrichen doppelt maskiert werden müssten, wie in den aktuellen Tests. Würde hier jemand daran interessiert sein, diesen Test zu aktualisieren und eine PR einzureichen?

Hier ist auch ein aktualisierter Link zu der fraglichen Herausforderung:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals

Möchte auch melden, dass dies immer noch ein Problem ist, funktioniert Karte für die Lösung.

Angesichts der Tatsache, dass ich das gleiche Problem mit der stabilen Version von ES6 auf FCC habe, das erst Anfang dieser Woche bereitgestellt wurde, habe ich Zweifel an meinem Code. Kann mir jemand helfen?

Hier ist mein Code: https://repl.it/repls/DizzyNiftyLocatorprogram

Push funktioniert in dieser Übung nicht (oder es hat nicht oder ich und scheint wie
andere) verwenden Sie die .map-Methode, um den Test zu bestehen.

Mark Kleinhaus
[email protected] [email protected]
206-234-4887

Am Sonntag, den 3. Juni 2018 um 6:10 Uhr schrieb aenkirch [email protected] :

In Anbetracht dessen habe ich das gleiche Problem mit der stabilen Version von ES6 auf FCC
das wurde erst Anfang dieser Woche eingesetzt, ich habe einige Zweifel in Anbetracht meiner
Code .. Kann mir jemand helfen?

Hier ist mein Code: https://repl.it/repls/DizzyNiftyLocatorprogram

- -
Sie erhalten dies, weil Sie kommentiert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment-394161176 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AQdgL5WB3BsARAzpDfgyWHG8VsYm29yaks5t4-A3gaJpZM4ROiPm
.

Sie übergeben result.failure als Parameter.

Die richtige Antwort ist

// Code unterhalb dieser Zeile ändern
const resultDisplayArray = arr.map (x => <li class="text-warning">${x}</li> );

Bestätigt:

const resultDisplayArray = arr.map((a) => {
  return `<li class="text-warning">${a}</li>`
});

funktioniert
aber

const resultDisplayArray = [
  `<li class="text-warning">${arr[0]}</li>`,
  `<li class="text-warning">${arr[1]}</li>`,
  `<li class="text-warning">${arr[2]}</li>`
];

funktioniert nicht. In der Lektion wird die Karte nicht erwähnt - und die Karte wird erst im Abschnitt "Funktionale Programmierung" nach diesem Abschnitt in den Lehrplan aufgenommen.

@ P1xt Das gleiche Problem haben. Zum Glück bin nicht nur ich.

const result = {
  success: ["max-length", "no-amd", "prefer-arrow-functions"],
  failure: ["no-var", "var-on-top", "linebreak"],
  skipped: ["id-blacklist", "no-dup-keys"]
};
function makeList(arr) {
  "use strict";

  // change code below this line
  const resultDisplayArray =
 [`<li class="text-warning">${arr[0]}</li>`, 
  `<li class="text-warning">${arr[1]}</li>`, 
  `<li class="text-warning">${arr[2]}</li>`];
  // change code above this line

  return resultDisplayArray;
}
/**
 * makeList(result.failure) should return:
 * [ <li class="text-warning">no-var</li>,
 *   <li class="text-warning">var-on-top</li>, 
 *   <li class="text-warning">linebreak</li> ]
 **/
const resultDisplayArray = makeList(result.failure);****

Ich habe das gleiche Problem

@ richa031 Wie oben erwähnt, müssen Sie Array.map verwenden, da Ihr Ansatz nicht funktioniert.

Gibt es etwas, das ich falsch geschrieben habe? und warum verwenden wir hier die Kartenfunktion?

Es ist ein dummes Problem, aber es sind auch doppelte Anführungszeichen zwischen dem Zeichenfolgenliteral erforderlich, wenn einfache Anführungszeichen ebenfalls eine akzeptable Lösung sein sollten.

In Fortsetzung von https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment -396369730,
Ich möchte hinzufügen, dass dies weder funktioniert:

const resultDisplayArray = [];
  for (let i = 0; i < arr.length; i++) {
    resultDisplayArray[i] = `<li class="text-warning">${arr[i]}</li>`
  }

@ Kanexte danke u

Ich wollte mich nur einschalten und erwähnen, dass ich auch das gleiche Problem habe. Freut mich zu hören, dass ich es nicht bin. Hoffe es wird bald behoben.

Vor dem gleichen Problem. Ich denke, ich muss diese Herausforderung offiziell unvollendet lassen und weitermachen. IM (H) O - Für den Umfang dieser Herausforderung ist die Referenzierung der Array-Elemente anhand ihrer Indizes die eleganteste Lösung, und die Verwendung von Map / Loops sorgt für Unordnung im Code.

Ich habe auch dieses Problem. Ich habe versucht, map zu verwenden, und jetzt wird eine Fehlermeldung angezeigt, die besagt:

Reaktion ist nicht definiert

Ich dachte, ich würde das auch bekommen, aber das Einwerfen einer Karte hier macht es nur unnötig schwierig.

Wie hast du das Problem gelöst? @ richa031

P1xt ist rigth array.map ist der Schlüssel für diese Herausforderung, aber Sie sollten nicht vergessen, dass eine Funktion als Parameter verwendet wird

@ Tirjasdyn Ich habe das gleiche Problem, fcc Es6 Abschnitt ist so kaputt. Sehr wenig Anweisungen. Keine Anleitung zur Verwendung von map (), filter (), redu () auch bei früheren Herausforderungen.

Gibt es eine richtige Lösung für dieses Problem?

@ Omerdogan3 Dies ist nicht der richtige Weg, da Sie in der Herausforderung die gewünschte Ausgabe sehen
makeList (result.failure) sollte Folgendes zurückgeben:

  • [
  • no-var
  • ,
  • var-on-top
  • ,
  • Zeilenumbruch
  • ]]
    da Ihre Lösung kein Komma oder ',' druckte.

Ich stimme @scissorsneedfoodtoo zu, dass der

Ich bin kein Regex-Assistent, aber das ist es, was ich mir ausgedacht habe / <li class="text-warning">\$\{[\w\[\]]+\}<\/li> / g (ohne dass die Backslashes für den String entkommen sind). Dies würde ... Schleifenlösungen ermöglichen, die auf das Array mit der Klammernotation arr [i] zugegriffen haben, die mit dem aktuellen Test für reguläre Ausdrücke offenbar nicht zulässig ist.

const resultDisplayArray = arr.map ((a) => {
return <li class="text-warning">${a}</li>
}); ``

Immer noch Invalid regular expression flags

Ich bekomme nur Invalid regular expression flags

Ich erhalte auch weiterhin Fehler für korrekte Lösungen.

Es werden immer noch die Flags> Ungültiger regulärer Ausdruck angezeigt

Hallo zusammen. Vielen Dank, dass Sie sich die Zeit genommen haben, uns über dieses laufende Problem auf dem Laufenden zu halten. Ich wollte Sie alle nur wissen lassen, dass der Regex-Test für diese Herausforderung kürzlich aktualisiert wurde und bald in Produktion gehen sollte.

Immer noch ungültige Flags für reguläre Ausdrücke mit:

const resultDisplayArray = arr.map ((a) => {
return <li class="text-warning">${a}</li>
});

@ mirkocoppola80 Ja, ich bin mir nicht sicher, wie oft ihre Zusammenführungen / Builds sind. Ich glaube nicht, dass sie seit dem 30. Mai einen gemacht haben, also warten wir darauf, dass die Änderungen wirksam werden.

Ungültige Flags für reguläre Ausdrücke für heute, die auf das Update warten ...

Ich versuche es mit einer Karte, für Schleifen usw., aber ich habe keine Lösung gefunden. Sie können es sehen, vielleicht eine Schlüsselidee gefunden. https://www.youtube.com/watch?v=XzExdQye1Ls

@jsparadacelis Ich folge dem Code in diesem Video, das funktioniert nicht

Hallo, ich erhalte auch immer noch ungültige Flags für reguläre Ausdrücke mit:

const resultDisplayArray = arr.map (item => <li class="text-warning">${item}</li> );

Es funktioniert immer noch nicht. Können wir hier bitte ein Licht haben?

Ja, ich kann immer noch keine funktionierende Lösung für diese Herausforderung finden

Ich erhalte den Fehler " Ungültige Flags für reguläre Ausdrücke" .

const resultDisplayArray = arr.map ((msg) => {
return <li class="text-warning">${msg}</li> ;
});

Ich erhalte auch den Fehler Ungültige Flags für
screen shot 2018-07-11 at 9 37 41 pm

Ich erhalte immer noch den Fehler " Ungültige Flags für reguläre Ausdrücke" .
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals/

Ich habe es mit map und allem versucht und erhalte immer noch ungültige Flags für reguläre Ausdrücke

Bestätigt funktioniert immer noch nicht

Funktioniert immer noch nicht, ist eher frustrierend

Im Moment funktionieren weder die MAP-Methode noch die einfacheren, aber langwierigeren Ansätze, der gleiche Fehler - "Ungültige Flags für reguläre Ausdrücke", obwohl die anderen Tests bestanden wurden

Hey, wenn jemand einen Weg gefunden hat, sag mir bitte, ich kann xD nicht weiterentwickeln (ich weiß, ich könnte es überspringen, aber oh meine OCD)

Ich arbeite immer noch nicht für mich.

Hey, ich bin nur ein anderer Typ, der schreibt, dass es immer noch nicht funktioniert.

Ich habe gesehen, dass dies angeblich behoben und noch nicht bereitgestellt ist, wollte aber posten, falls es weitere Informationen benötigt. Ich habe die korrekte Ausgabe mit console.log () bestätigt, aber meine Lösung besteht den Test "Vorlagenzeichenfolgen wurden verwendet" nicht.
Mein Code:

const resultDisplayArray = arr.map(x => `<li class="text-warning">${x}</li>`);
console.log(resultDisplayArray);

Konsolenausgabe:

// running test
Invalid regular expression flags
// tests completed
<li class="text-warning">no-var</li>,<li class="text-warning">var-on-top</li>,<li class="text-warning">linebreak</li>

Funktioniert immer noch nicht. const resultDisplayArray = arr.map(num => '<li class="text-warning">${num}</li>');
// Lauftest
Ungültige Flags für reguläre Ausdrücke
// Tests abgeschlossen

Die Kartenmethode funktioniert immer noch nicht. Mit oder ohne Rückgabe.

Ich warte immer noch auf eine Lösung

const resultDisplayArray = arr.map (val => {return <li class="text-warning">${val}</li> });

Es werden ungültige Flags für reguläre Ausdrücke angezeigt.

const resultDisplayArray = arr.map (x => <li class="text-warning">${x}</li> );

const resultDisplayArray = [ <li class="text-warning">${arr[0]}</li> , <li class="text-warning">${arr[1]}</li> , <li class="text-warning">${arr[2]}</li> ];

beide funktionieren nicht für mich, ich dachte, es wäre mein Code, aber es scheint, als ob etwas kaputt ist

Ich habe heute versucht, es zu lösen, aber es funktioniert immer noch nicht.

Ich habe es auch mit Fluchtzeichen versucht:

const resultDisplayArray = arr.map (x => <li class=\"text-warning\">${x}</li> );

aber es ist immer noch "Ungültige Flags für reguläre Ausdrücke"

Ich habe auch versucht, es zu lösen, erhalte aber weiterhin die gleichen "Ungültigen Flags für reguläre Ausdrücke" wie eine Ausgabe. 2 der drei Tests werden bestanden, aber ich erhalte weiterhin die Nachricht.

const resultDisplayArray = arr.map (val => <li class="text-warning">${val}</li> );

Ich habe auch eine einfache for-Schleife verwendet und das gleiche Ergebnis erhalten

Immer noch nicht behoben! 😢

Ja, ich habe es auf 4 Arten geschrieben und es funktioniert nicht. es ist kaputt. überspringen Sie es einfach und fahren Sie fort

Funktioniert immer noch nicht..

Gleiches Problem;

const resultDisplayArray = arr.map((a) => { return `<li class="text-warning">${a}</li>` });

gibt den Fehler "ungültige Flags für reguläre Ausdrücke" zurück

Bestätigen Sie, dass es immer noch nicht funktioniert.
Versucht für jede, für Schleife, Karte ... Keine Ahnung, was mit dieser Herausforderung los ist

Ja, funktioniert immer noch nicht. Es wird der gleiche Fehler wie bei allen anderen "Ungültige Flags für reguläre Ausdrücke" angezeigt.
Versucht mit Karte, für jeden usw.

Es klappt! Ich versuche jede Woche die gleiche Lösung mit Karte und jetzt ist es vorbei! Hurra!

Hat auch für mich gearbeitet! :) Hat gestern nicht funktioniert.

Bestätigt funktioniert jetzt mit

const resultDisplayArray = arr.map((msg) => {
  return `<li class="text-warning">${msg}</li>`;
});

Danke für die Fehlerbehebung.

Aleluya !! Es klappt

alleluia.finally funktioniert

Dies sollte ohne die Kartenfunktion funktionieren, nur mit normalen Vorlagenliteralen. Dies würde lehren, wie Speicherplatz ohne Hinzufügen erhalten bleibt
Tags oder & nbsp;

Unten finden Sie den Code, der funktioniert :):

const result = {
Erfolg: ["maximale Länge", "no-amd", "bevorzugte Pfeilfunktionen"],
Fehler: ["no-var", "var-on-top", "Zeilenumbruch"],
übersprungen: ["id-blacklist", "no-dup-keys"]
};
Funktion makeList (arr) {
"benutze streng";

// Code unterhalb dieser Zeile ändern
const resultDisplayArray = [ <li class="text-warning">${arr[0]}</li> ,
<li class="text-warning">${arr[1]}</li> ,
<li class="text-warning">${arr[2]}</li> ];
// Code über dieser Zeile ändern

return resultDisplayArray;
}}
/ **

  • makeList (result.failure) sollte Folgendes zurückgeben:
  • [ <li class="text-warning">no-var</li> ,
  • <li class="text-warning">var-on-top</li> ,
  • <li class="text-warning">linebreak</li> ]
    ** /
    const resultDisplayArray = makeList (result.failure);
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen