Freecodecamp: ES6: Créer des chaînes à l'aide de littéraux de modèle - Le test échoue - Ne détecte pas les chaînes de modèle

Créé le 28 déc. 2017  ·  75Commentaires  ·  Source: freeCodeCamp/freeCodeCamp



Nom du défi

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

Description du problème


Le défi échoue au dernier test, «Des chaînes de modèle ont été utilisées».

Informations sur le navigateur

Nom du navigateur, version:
Système d'exploitation: FireFox 57.0 (64 bits) et Chrome Version 63.0.3239.84 (version officielle) (64 bits)
Mobile, ordinateur de bureau ou tablette: ordinateur portable Windows 10 Professionnel 64 bits

Votre code


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

Capture d'écran

image

Commentaire le plus utile

confirmé:

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

travaux
mais

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

ne marche pas. Et, il n'y a aucune mention de la carte dans la leçon - et, la carte n'est même pas introduite dans le programme jusqu'à la section Programmation fonctionnelle qui vient après cette section.

Tous les 75 commentaires

Mise à jour: après une enquête de l'un de nos campeurs, il semble que la branche de préparation corrige le problème mais n'a pas été transférée en version bêta.

Je peux confirmer que cela fonctionne sur la mise en scène, mais je pense que la description pourrait nécessiter un peu de clarification.

Eu un problème similaire. D'accord avec systimotic. Changement de texte dans les cas de test proposés comme suit:

Actuel: des chaînes de modèle ont été utilisées
Proposition: des chaînes de modèle ont été utilisées avec map ()

J'ai examiné cela aujourd'hui, le défi n'indique pas que l'utilisation de .map () est nécessaire et j'ai pu le résoudre / le compléter avec et sans utiliser .map (). Par conséquent, je ne pense pas que cela nécessite des changements?

Paul (@PolarisTLX) et Kyle (@ jklemon17)

J'ai vérifié cela récemment en utilisant la solution de @mstellaluna et ai également résolu sans utiliser la carte comme l'a fait @PolarisTLX . L'utilisation de la carte est probablement le moyen le plus concis de relever ce défi, mais je pense que nous devrions laisser aux utilisateurs le soin de s'y prendre. Je ne suis pas sûr que la description nécessite des modifications car l'utilisateur est informé de ce que la fonction makeList doit renvoyer.

On dirait que map est maintenant la seule méthode de passage dans la nouvelle version . Les 2 méthodes suivantes ont échoué 'Des chaînes de modèle ont été utilisées':

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 , vous avez raison. Ces deux solutions sont valables, mais elles ne passent pas.

Il semble que le cas de test pour les littéraux de modèle ne soit pas assez flexible:

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

L'expression régulière ne s'attend pas à des crochets avant l'accolade suivante, et vos solutions font échouer le test. Cela devrait être une solution assez simple. Je ne suis pas le meilleur avec regex, mais cela devrait permettre différentes solutions comme celles ci-dessus:

\`<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*>\`

Je ne sais pas exactement où certains caractères devraient être doubles échappés avec deux barres obliques comme dans les tests actuels, cependant. Quelqu'un ici serait-il intéressé par la mise à jour de ce test et la soumission d'un PR?

Aussi, voici un lien mis à jour vers le défi en question:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals

Voudrais également signaler que c'est toujours un problème, la carte fonctionne pour la solution.

Étant donné que j'ai le même problème sur la version stable d'ES6 sur FCC qui vient d'être déployée plus tôt cette semaine, j'ai un doute sur mon code .. Quelqu'un peut-il m'aider?

Voici mon code: https://repl.it/repls/DizzyNiftyLocatorprogram

Push ne fonctionne pas dans cet exercice (ou cela ne fonctionne pas ou moi et semble
autres), utilisez la méthode .map pour réussir le test.

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

Le dimanche 3 juin 2018 à 6 h 10, aenkirch [email protected] a écrit:

Considérant que j'ai le même problème sur la version stable d'ES6 sur FCC
qui vient d'être déployé plus tôt cette semaine, j'ai des doutes compte tenu de mon
code .. Quelqu'un peut-il m'aider?

Voici mon code: https://repl.it/repls/DizzyNiftyLocatorprogram

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment-394161176 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AQdgL5WB3BsARAzpDfgyWHG8VsYm29yaks5t4-A3gaJpZM4ROiPm
.

Ils transmettent result.failure comme paramètre.

La bonne réponse est

// changer le code sous cette ligne
const resultDisplayArray = arr.map (x => <li class="text-warning">${x}</li> );

confirmé:

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

travaux
mais

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

ne marche pas. Et, il n'y a aucune mention de la carte dans la leçon - et, la carte n'est même pas introduite dans le programme jusqu'à la section Programmation fonctionnelle qui vient après cette section.

@ P1xt Ayant le même problème. Heureusement, ce n'est pas que moi.

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);****

J'ai le même problème

@ richa031 Comme indiqué ci-dessus, vous devez utiliser Array.map, avec votre approche ne fonctionne pas.

y a-t-il quelque chose que j'ai mal écrit? et pourquoi utilisons-nous la fonction de carte ici?

C'est un problème idiot, mais des guillemets doubles sont également nécessaires entre le littéral de chaîne lorsque les guillemets simples devraient également être une solution acceptable.

Dans la continuité de https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment -396369730,
Je voudrais ajouter que cela ne fonctionne pas non plus:

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

@kanexte merci

Je voulais juste intervenir et mentionner que j'ai aussi le même problème. Content d'entendre que ce n'est pas moi. J'espère que ça sera réparé bientôt.

Face au même problème. Je suppose que je vais devoir garder ce défi officiellement inachevé et passer à autre chose. IM (H) O - pour la portée de ce défi, référencer les éléments du tableau par leurs indices est la solution la plus élégante et l'utilisation de map / loops encombre le code.

J'ai également ce problème. J'ai essayé d'utiliser la carte et j'obtiens maintenant une erreur qui dit:

React n'est pas défini

Je pensais que j'obtenais cela aussi, mais jeter une carte ici rend les choses inutilement difficiles.

comment avez -vous résolu le problème

P1xt est rigth array.map est la clé de ce défi mais il ne faut pas oublier qu'il prend une fonction comme paramètre

@Tirjasdyn J'ai le même problème, la section fcc Es6 est tellement cassée. Très moins d'instructions. Aucune instruction sur la façon d'utiliser map (), filter (), reduction () dans les défis précédents également.

y a-t-il une solution appropriée à ce problème?

@ Omerdogan3 Ce n'est pas la bonne manière, car vous regardez dans le défi le résultat souhaité est
makeList (result.failure) doit retourner:

  • [
  • no-var
  • ,
  • var-on-top
  • ,
  • saut de ligne
  • ]
    car votre solution n'a pas imprimé de virgule ou de ','.

Je suis d'accord avec @scissorsneedfoodtoo que l'expression

Je ne suis pas un wiz regex mais c'est ce que j'ai trouvé / <li class="text-warning">\$\{[\w\[\]]+\}<\/li> / g (sans les backslashes échappés pour la chaîne). Cela permettrait des solutions de boucle ... qui accèdent au tableau avec la notation entre crochets arr [i] qui semble être interdite avec le test d'expression régulière actuel.

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

Vous recevez toujours Invalid regular expression flags

Je viens de recevoir Invalid regular expression flags

Je reçois toujours des erreurs pour les solutions correctes.

obtenant toujours les> indicateurs d'expressions régulières non valides

Salut à tous. Merci d'avoir pris le temps de nous informer de ce problème persistant. Je voulais juste vous informer que le test regex pour ce défi a été mis à jour récemment et qu'il devrait être mis en production bientôt.

Obtention toujours d'indicateurs d'expressions régulières invalides avec:

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

@ mirkocoppola80 ouais, je ne suis pas sûr de la fréquence de leurs fusions / constructions. Je ne pense pas qu'ils en aient fait un depuis le 30 mai, alors nous attendons que les changements entrent en vigueur.

Indicateurs d'expressions régulières non valides pour aujourd'hui, en attente de la mise à jour ...

J'essaie avec la carte, pour les boucles, etc., mais je n'ai pas trouvé de solution. Vous pouvez le voir, peut-être trouvé une idée clé. https://www.youtube.com/watch?v=XzExdQye1Ls

@jsparadacelis Je suis le code de cette vidéo, ça ne marche pas

Bonjour, je reçois toujours des indicateurs d'expressions régulières non valides avec:

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

Cela ne fonctionne toujours pas. Pouvons-nous avoir une lumière ici s'il vous plaît?

Oui, je ne trouve toujours pas de solution fonctionnelle à ce défi

J'obtiens une erreur d'

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

J'obtiens également l'erreur d' indicateurs d'expressions régulières invalides ci-dessous.
screen shot 2018-07-11 at 9 37 41 pm

Je reçois toujours une erreur d' indicateurs d'expressions régulières non valides .
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals/

Je l'ai essayé avec la carte et tout et j'ai toujours des indicateurs d'expressions régulières non valides

Confirmé ne fonctionne toujours pas

Ne fonctionne toujours pas, plutôt frustrant

Pour le moment, ni la méthode MAP ni les approches plus simples mais longues ne fonctionnent, même erreur - "Indicateurs d'expression régulière non valides" même si les autres tests sont réussis

Hé, si quelqu'un trouve un moyen, dis-le moi, je ne peux pas avancer xD (je sais que je pourrais le sauter mais oh mon TOC)

Je ne travaille toujours pas pour moi.

Hé, je suis juste un autre gars pour écrire que ça ne marche toujours pas.

J'ai vu que cela est censé être corrigé et pas encore déployé, mais je voulais publier au cas où il aurait besoin de plus d'informations. J'ai confirmé la sortie correcte avec console.log () cependant, ma solution ne passe pas le test "Des chaînes de modèle ont été utilisées".
mon code:

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

sortie de la console:

// 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>

Ne fonctionne toujours pas. const resultDisplayArray = arr.map(num => '<li class="text-warning">${num}</li>');
// test en cours
Indicateurs d'expression régulière non valides
// tests terminés

La méthode de carte ne fonctionne toujours pas. Avec ou sans retour.

toujours en attente de réparation

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

Obtention du résultat d'indicateurs d'expressions régulières non valides.

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> ];

les deux ne fonctionnent pas pour moi, je pensais que c'était mon code, mais il semble que quelque chose soit cassé

J'ai essayé de le résoudre aujourd'hui, mais cela ne fonctionne toujours pas.

Je l'ai essayé aussi avec des marques d'échappement:

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

mais il est toujours "Indicateurs d'expression régulière non valides"

J'ai moi aussi essayé de le résoudre, mais je continue à obtenir les mêmes "indicateurs d'expressions régulières non valides" en sortie. 2 des trois tests sont en cours de réussite, mais je continue de recevoir le message.

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

J'ai également utilisé une simple boucle for et j'obtiens le même résultat

Toujours pas fixé! 😢

ouais je l'ai écrit comme 4 façons et ça ne marche pas. son éclaté. saute et passe à autre chose

Ne fonctionne toujours pas..

Même problème;

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

renvoie l'erreur "indicateurs d'expressions régulières non valides"

Confirmer ne fonctionne toujours pas.
Essayé pour chaque, boucle for, carte .. Aucune idée de ce qui se passe avec ce défi

Ouais, ne fonctionne toujours pas. Obtention de la même erreur que tout le monde, "Indicateurs d'expression régulière non valides".
Essayé avec map, forEach, etc.

Ça marche! J'essaye la même solution avec la carte chaque semaine et maintenant c'est passé! Hourra!

A travaillé pour moi aussi! :) Ne travaillait pas hier.

Confirmé fonctionne maintenant avec

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

Merci pour le correctif.

Aleluya !! Ça marche

alleluia. fonctionne enfin

cela devrait fonctionner sans la fonction de carte, en utilisant simplement des littéraux de modèle normaux, ce serait enseigner comment l'espace est préservé sans ajouter
balises ou & nbsp;

Ci-dessous vous pouvez trouver le code qui fonctionne :):

résultat const = {
succès: ["max-length", "no-amd", "prefer-arrow-functions"],
échec: ["no-var", "var-on-top", "linebreak"],
ignoré: ["id-blacklist", "no-dup-keys"]
};
function makeList (arr) {
"utiliser strict";

// changer le code sous cette ligne
const resultDisplayArray = [ <li class="text-warning">${arr[0]}</li> ,
<li class="text-warning">${arr[1]}</li> ,
<li class="text-warning">${arr[2]}</li> ];
// changer le code au-dessus de cette ligne

return resultDisplayArray;
}
/ **

  • makeList (result.failure) doit retourner:
  • [ <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);
Cette page vous a été utile?
0 / 5 - 0 notes