Freecodecamp: ES6:使用模板文字创建字符串-测试失败-不检测模板字符串

创建于 2017-12-28  ·  75评论  ·  资料来源: freeCodeCamp/freeCodeCamp



挑战名称

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

问题说明


挑战在于上次测试“使用模板字符串”失败。

浏览器信息

浏览器名称,版本:
操作系统:FireFox 57.0(64位)和Chrome版本63.0.3239.84(官方内部版本)(64位)
移动设备,台式机或平板电脑:笔记本电脑Windows 10 Professional 64位

您的密码


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

屏幕截图

image

最有用的评论

确认:

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

作品

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

不起作用。 而且,本课中没有提到map-直到本节后面的“函数式编程”部分都没有在课程中引入map。

所有75条评论

更新:经过我们的一名营员的调查,分期分支似乎解决了该问题,但尚未移植到Beta版。

我可以确认它确实可以进行分期,但是我认为描述可能需要一些澄清。

发生了类似的问题。 同意systimotic。 建议在测试用例中进行以下文字更改:

当前:使用了模板字符串
建议:模板字符串与map()一起使用

我今天已经研究了这一点,挑战并不表明需要使用.map(),而且无论是否使用.map(),我都能够解决/完成它。 因此,我认为这不需要任何更改吗?

保罗(@PolarisTLX)和凯尔(@ jklemon17)

我最近使用@mstellaluna的解决方案进行了检查,并且不像@PolarisTLX一样使用map来解决它。 使用地图可能是完成这一挑战的最简洁的方法,但是我认为我们应该让用户自己去做。 由于用户被告知makeList函数应返回什么,因此我不确定说明是否需要任何更改。

好像map现在是新版本中唯一传递的方法。 以下2种方法均未使用“使用模板字符串”:

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 ,你是对的。 这两个都是有效的解决方案,但它们没有通过。

模板文字的测试用例似乎不够灵活:

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

正则表达式不会在下一个花括号前出现括号,并且您的解决方案会导致测试失败。 应该是一个简单的修复程序。 我对regex并不是最好的选择,但这应该允许使用类似上面的解决方案:

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

不过,我不确定确切的位置是否需要像当前测试中那样使用两个斜杠对两个字符进行两次转义。 有兴趣在此更新此测试并提交PR的人吗?

另外,这是有关问题的更新链接:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals

还想报告这仍然是一个问题,地图适用于解决方案。

考虑到本周早些时候刚刚部署的FCC ES6稳定版存在相同的问题,我对我的代码有些怀疑。有人可以帮助我吗?

这是我的代码: https :

推在此练习中不起作用(或者它不在我本人看来
其他),请使用.map方法通过测试。

马克·克莱因豪斯
[email protected] [email protected]
206-234-4887

在2018年6月3日,星期日,6:10 AM,aenkirch [email protected]写道:

考虑到我在FCC的稳定版ES6上有相同的问题
刚在本周早些时候部署,考虑到我的
代码..有人可以帮助我吗?

这是我的代码: https :

-
您收到此邮件是因为您发表了评论。
直接回复此电子邮件,在GitHub上查看
https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment-394161176
或使线程静音
https://github.com/notifications/unsubscribe-auth/AQdgL5WB3BsARAzpDfgyWHG8VsYm29yaks5t4-A3gaJpZM4ROiPm

他们将result.failure作为参数传递。

正确的答案是

//更改此行下方的代码
const resultDisplayArray = arr.map(x => <li class="text-warning">${x}</li> );

确认:

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

作品

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

不起作用。 而且,本课中没有提到map-直到本节后面的“函数式编程”部分都没有在课程中引入map。

@ P1xt有同样的问题。 谢天谢地不仅是我。

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

我有同样的问题

@ richa031如上所述,您需要使用Array.map,但是您的方法无效。

我写错了什么吗? 为什么在这里使用地图功能?

这是一个愚蠢的问题,但是当单引号也应该是可接受的解决方案时,字符串文字之间也需要双引号。

继续https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment -396369730,
我想补充一点,这都不起作用:

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

@kanexte谢谢你

只是想插话并提到我也有同样的问题。 很高兴听到不是我。 希望它能尽快解决。

面对同样的问题。 我想我将不得不正式解决这一挑战并继续前进。 IM(H)O-在此挑战的范围内,通过索引引用数组元素是最优雅的解决方案,并且使用映射/循环会使代码混乱。

我也有这个问题。 我尝试使用地图,现在看到一条错误消息:

未定义React

我以为我也得到了,但是在这里扔地图只会增加不必要的难度。

您如何解决问题@ richa031

P1xt是严格的array.map是此挑战的关键,但您不要忘记它以函数作为参数

@Tirjasdyn我有同样的问题,FCC Es6部分太坏了。 很少的指示。 在先前的挑战中也没有关于如何使用map(),filter()和reduce()的说明。

有没有解决这个问题的适当方法?

@ Omerdogan3这不是正确的方法,因为您在挑战中查看所需的输出是
makeList(result.failure)应该返回:

  • [
  • 无变
  • 顶变
  • 越线
  • ]
    因为您的解决方案没有打印逗号或','。

我同意@scissorsneedfoodtoo的观点,即

我不是正则表达式向导,但这是我想出的/ <li class="text-warning">\$\{[\w\[\]]+\}<\/li> / g(不带反斜杠的字符串)。 这将允许...用括号表示法arr [i]访问数组的循环解决方案,当前正则表达式测试似乎不允许这样做。

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

仍获得Invalid regular expression flags

我只得到Invalid regular expression flags

对于正确的解决方案,我仍然会收到错误消息。

仍然得到>无效的正则表达式标志

大家好。 感谢您抽出宝贵时间向我们更新有关此持续存在的问题的信息。 只是想让大家知道此挑战的正则表达式测试是最近更新的,应该尽快投入生产。

仍通过以下命令获得无效的正则表达式标志:

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

@ mirkocoppola80是的,我不确定他们合并/构建的频率。 我认为他们自5月30日以来就没有做过任何事情,因此我们正在等待更改生效。

今天无效的正则表达式标志,正在等待更新...

我尝试使用地图,循环等,但是我没有找到解决方案。 您可以看到它,也许找到了一个关键主意。 https://www.youtube.com/watch?v=XzExdQye1Ls

@jsparadacelis我遵循该视频上的代码,但不起作用

嗨,我还收到带有以下内容的无效正则表达式标志:

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

它仍然无法正常工作。 请给我们点灯好吗?

是的,仍然找不到解决此挑战的可行解决方案

我收到无效的正则表达式标志错误。

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

我还收到下面的无效正则表达式标志错误。
screen shot 2018-07-11 at 9 37 41 pm

我尝试使用map和其他所有功能,但仍然收到无效的正则表达式标志

确认仍无法正常工作

仍然无法运作,令人沮丧

现在,MAP方法和更简单但冗长的方法都无法使用,出现相同的错误-即使通过了其他测试,“无效的正则表达式标志”

嘿,如果有人找到方法请告诉meeee,我无法推进xD(我知道我可以跳过它,但是哦,我的OCD)

仍然不能为我工作。

嘿,我只是另一个人,它仍然无法正常工作。

我已经看到这应该是固定的,尚未部署,但是想发布,以防它需要更多信息。 我已经使用console.log()确认了正确的输出,但是,我的解决方案未通过测试“使用了模板字符串”。
我的代码:

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

控制台输出:

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

还是行不通。 const resultDisplayArray = arr.map(num => '<li class="text-warning">${num}</li>');
//运行测试
无效的正则表达式标志
//测试完成

地图方法仍然无效。 有或没有回报。

仍在等待修复

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

结果无效的正则表达式标志。

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

两者都不适合我,我以为是我的代码,但是好像有些东西坏了

试图解决今天,但仍然无法正常工作。

我也尝试过使用转义符:

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

但它仍然是“无效的正则表达式标志”

我也曾尝试解决它,但继续获得相同的“无效正则表达式标志”作为输出。 三个测试中有2个通过了,但我仍然收到消息。

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

我还使用了一个简单的for循环并获得相同的结果

还是不固定! 😢

是的,我已经按照4种方式编写了它,但它不起作用。 它破灭了。 跳过它继续前进

还是行不通..

同样的问题;

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

返回错误“无效的正则表达式标志”

确认仍然无法正常工作。
尝试forEach,for循环,地图..不知道此挑战是怎么回事

是的,仍然无法正常工作。 与其他所有人都遇到相同的错误,“无效的正则表达式标志”。
尝试过map,forEach等

有用! 我每周都会用map尝试相同的解决方案,现在它已经过去了! 万岁!

也为我工作! :)昨天没工作。

现在确认适用于

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

感谢您的修复。

阿雷路亚! 有用

Alleluia.finally作品

这应该在没有map函数的情况下工作,仅使用普通的模板文字,这将教您如何在不添加空间的情况下保留空间
标签或&nbsp;

在下面,您可以找到有效的代码:):

const result = {
成功:[“最大长度”,“无修改”,“首选箭头功能”],
失败:[“ no-var”,“ top-var”,“ linebreak”],
跳过:[“ id-blacklist”,“ no-dup-keys”]
};
函数makeList(arr){
“使用严格”;

//更改此行下方的代码
const resultDisplayArray = [ <li class="text-warning">${arr[0]}</li>
<li class="text-warning">${arr[1]}</li>
<li class="text-warning">${arr[2]}</li> ];
//更改此行上方的代码

返回resultDisplayArray;
}
/ **

  • makeList(result.failure)应该返回:
  • [ <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);
此页面是否有帮助?
0 / 5 - 0 等级