Проблема доступа к многомерным массивам с помощью индексов
есть проблема.
Пользовательский агент: 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;
@ Pablo152 благодарит за вопрос. Вы правы, это своего рода баг. Ммм, поймать такой код может быть сложно. Мы могли бы добавить два теста:
var myData = myArray[0][0];
поэтому мы можем проверить, что они, по крайней мере, меняют нули на что-то другое.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];
хорошая тема, которую я изучаю,
Самый полезный комментарий
@ Pablo152 благодарит за вопрос. Вы правы, это своего рода баг. Ммм, поймать такой код может быть сложно. Мы могли бы добавить два теста:
var myData = myArray[0][0];
поэтому мы можем проверить, что они, по крайней мере, меняют нули на что-то другое.myData = <some number>
т.е. регулярного выражения для/myData = \d/
или чего-то подобного.cc / @ FreeCodeCamp / модераторы проблемы