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問題をありがとう。 あなたは正しいです、これはある種のバグです。 うーん、この種のコードをキャッチするのは難しいかもしれません。 2つのテストを追加できます。

  1. デフォルトのコードはvar myData = myArray[0][0];なので、少なくともゼロが別のものに変更されていることを確認できます。
  2. myData = <some number>つまり/myData = \d/などの正規表現がないことを確認します。

cc / @ FreeCodeCamp / issue-moderators

全てのコメント10件

@ Pablo152問題をありがとう。 あなたは正しいです、これはある種のバグです。 うーん、この種のコードをキャッチするのは難しいかもしれません。 2つのテストを追加できます。

  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私はます-発生するさまざまなコーナーケースに対処するためにさらにテストを追加するので、テストの壁でキャンパーを脅かさないように、これらをできるだけ少ないテストの後ろに

@QuincyLarson @BKinahanいいですね! 角かっこがmyArray[0][0]ないことを確認して、 You should be using bracket notation to read the value from myArrayテストに追加できると思います。 このコーナーケースを捕まえるにはそれで十分なはずです。

@erictleung myData = [2] [2]を設定できるため、上記のテストと前述の/ myData = \ d /の正規表現の両方が必要だと思います。 それでも、不正なコードmyData = 4+4を実行して、チャレンジに合格します。 同意する場合は、テストを更新して、myData [0] [0]と正規表現の両方の変更を確認します。

@dhcodesは合理的に聞こえます。 @QuincyLarsonが述べたように、追加する必要のあるテストの数を最小限に抑えるようにしてください。 したがって、 /myData = \d/を探している正規表現では、 myData = 4 + 4の場合はカバーされないので、それも説明できるかどうかを確認してください。 ありがとう!

@dhcodesは彼がこれに取り組んでいないと言ったので、私はそれをつかみました😄

4 + 4ソリューションは課題を解決しますが、方向に基づいて解決する正しい方法は、「ブラケット表記を使用して、myDataが8に等しくなるようにmyArrayから要素を選択する」です。

// セットアップ
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 評価