Freecodecamp: 挑战[使用索引访问多维数组]解决错误

创建于 2016-08-08  ·  10评论  ·  资料来源: freeCodeCamp/freeCodeCamp

带有索引的质询
有一个问题。

用户代理是: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
请描述如何重现此问题,并在可能的情况下包括指向屏幕截图的链接。
我只是使用myData = 4 + 4来获取myData = 8,所以我以这种方式解决了挑战,如果我没记错的话,那真是个问题。

我的代码:


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

最有用的评论

@ Pablo152感谢您的问题。 您是对的,这是种错误。 嗯,要捕获此类代码,可能会很困难。 我们可以添加两个测试:

  1. 默认代码是var myData = myArray[0][0];因此我们可以检查它们是否至少将零更改为其他值。
  2. 检查是否没有myData = <some number>/myData = \d/的正则表达式或类似内容。

cc / @ FreeCodeCamp / issue-moderators

所有10条评论

@ Pablo152感谢您的问题。 您是对的,这是种错误。 嗯,要捕获此类代码,可能会很困难。 我们可以添加两个测试:

  1. 默认代码是var myData = myArray[0][0];因此我们可以检查它们是否至少将零更改为其他值。
  2. 检查是否没有myData = <some number>/myData = \d/的正则表达式或类似内容。

cc / @ FreeCodeCamp / issue-moderators

@erictleung这些测试中的一个或两个都可以与You should be using bracket notation to read the value from myArray测试结合使用,以避免在测试消息区域增加混乱,因为它们的目标相同。

@erictleung我同意@BKinahan的观点-随着我们添加更多测试以解决即将出现的各种在尽可能少的测试后面,以免使测试者感到恐惧。

@QuincyLarson @BKinahan听起来不错! 我认为我们可以通过检查括号不是myArray[0][0]来添加到You should be using bracket notation to read the value from myArray测试中。 这足以应付这种情况。

@erictleung我想我们既需要上面的测试,也需要/ myData = \ d /的上述正则表达式,因为我可以设置myData = [2] [2]; 并且仍然运行恶意代码myData = 4+4来挑战。 如果您同意,我将尝试更新测试以检查myData [0] [0]和正则表达式的变化。

@dhcodes听起来很合理。 正如@QuincyLarson提到的那样,请尝试尽量减少我们需要添加的测试的数量(如果有)。 因此,对于正则表达式,寻找/myData = \d/不会涵盖myData = 4 + 4的情况,因此请查看您是否也可以考虑这一点。 谢谢!

@dhcodes说他没有为此工作,所以我抓住了它😄

尽管4 + 4解决方案确实解决了这一难题,但根据指示“使用括号表示法从myArray中选择一个元素,使myData等于8”的正确解决方法是:

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

//仅更改此行下方的代码。
var myData = myArray [2] [1];

myArray [2] [1];

我学的好话题

此页面是否有帮助?
0 / 5 - 0 等级