Freecodecamp: Tantangan [Mengakses Array MultiDimensi Dengan Indeks] Memecahkan Bug

Dibuat pada 8 Agu 2016  ·  10Komentar  ·  Sumber: freeCodeCamp/freeCodeCamp

Tantang Akses Array MultiDimensi Dengan Indeks
memiliki masalah.

Agen Pengguna adalah: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 .
Harap jelaskan cara mereproduksi masalah ini, dan sertakan tautan ke tangkapan layar jika memungkinkan.
Saya baru saja menggunakan myData = 4 + 4 untuk mendapatkan myData = 8 dan saya menyelesaikan tantangan dengan cara itu, jika saya tidak salah itu bug jadi ...

Kode saya:


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

Komentar yang paling membantu

@ Pablo152 terima kasih atas masalah ini. Anda benar, ini semacam bug. Mmm untuk menangkap kode semacam ini, mungkin sulit. Kami dapat menambahkan dalam dua tes:

  1. Kode defaultnya adalah var myData = myArray[0][0]; sehingga kami dapat memeriksa bahwa mereka setidaknya mengubah nol menjadi yang lain.
  2. Periksa bahwa tidak ada myData = <some number> yaitu regex untuk /myData = \d/ atau yang serupa.

cc / @ FreeCodeCamp / moderator masalah

Semua 10 komentar

@ Pablo152 terima kasih atas masalah ini. Anda benar, ini semacam bug. Mmm untuk menangkap kode semacam ini, mungkin sulit. Kami dapat menambahkan dalam dua tes:

  1. Kode defaultnya adalah var myData = myArray[0][0]; sehingga kami dapat memeriksa bahwa mereka setidaknya mengubah nol menjadi yang lain.
  2. Periksa bahwa tidak ada myData = <some number> yaitu regex untuk /myData = \d/ atau yang serupa.

cc / @ FreeCodeCamp / moderator masalah

@erictleung Salah satu atau kedua pengujian tersebut dapat digabungkan dengan pengujian You should be using bracket notation to read the value from myArray untuk menghindari penambahan kekacauan ke area pesan pengujian, karena keduanya menargetkan kondisi yang sama.

@erictleung Saya setuju dengan @BKinahan - karena kami menambahkan lebih banyak tes untuk menangani berbagai kasus sudut yang muncul, kami menyelipkan ini di belakang sesedikit mungkin tes untuk menghindari mengintimidasi berkemah dengan dinding tes.

@QuincyLarson @BKinahan terdengar bagus! Saya pikir kita bisa menambahkan tes You should be using bracket notation to read the value from myArray dengan memeriksa bahwa braketnya bukan myArray[0][0] . Itu seharusnya cukup untuk menangkap kasus sudut ini.

@erictleung Saya rasa kita membutuhkan pengujian Anda di atas dan regex yang disebutkan di atas untuk / myData = \ d / karena saya dapat menyetel myData = [2] [2]; dan masih menjalankan kode jahat myData = 4+4 untuk lulus tantangan. Jika Anda setuju, saya akan mencoba memperbarui pengujian untuk memeriksa perubahan myData [0] [0] dan regex.

@dhodes terdengar masuk akal. Seperti yang telah disebutkan @QuincyLarson , cobalah meminimalkan jumlah pengujian yang perlu kita tambahkan, jika ada. Jadi untuk regex yang mencari /myData = \d/ tidak akan mencakup kasus myData = 4 + 4 jadi lihat apakah Anda dapat menjelaskannya juga. Terima kasih!

@dhcodes mengatakan dia tidak mengerjakan ini, jadi saya mengambilnya 😄

Sementara solusi 4 + 4 menyelesaikan tantangan, cara yang benar untuk menyelesaikannya berdasarkan petunjuk, "dengan menggunakan notasi braket pilih elemen dari myArray sehingga myData sama dengan 8", adalah:

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

// Hanya ubah kode di bawah baris ini.
var myData = myArray [2] [1];

myArray [2] [1];

topik bagus yang saya pelajari,

Apakah halaman ini membantu?
0 / 5 - 0 peringkat