Freecodecamp: Задача [Доступ к многомерным массивам с помощью индексов] Устранение ошибки

Созданный на 8 авг. 2016  ·  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 / модераторы проблемы

Все 10 Комментарий

@ Pablo152 благодарит за вопрос. Вы правы, это своего рода баг. Ммм, поймать такой код может быть сложно. Мы могли бы добавить два теста:

  1. Код по умолчанию - var myData = myArray[0][0]; поэтому мы можем проверить, что они, по крайней мере, меняют нули на что-то другое.
  2. Убедитесь, что нет myData = <some number> т.е. регулярного выражения для /myData = \d/ или чего-то подобного.

cc / @ FreeCodeCamp / модераторы проблемы

@erictleung Один или оба этих теста могут быть объединены с тестом You should be using bracket notation to read the value from myArray чтобы избежать беспорядка в области тестового сообщения, поскольку они нацелены на одно и то же условие.

@erictleung Я согласен с @BKinahan - по мере того, как мы добавляем дополнительные тесты для решения различных

@QuincyLarson @BKinahan звучит хорошо! Я думаю, мы можем просто добавить к тесту You should be using bracket notation to read the value from myArray проверив, что скобка не равна myArray[0][0] . Этого должно быть достаточно, чтобы поймать этот угловой случай.

@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 рейтинги