Problem z dwuwymiarową tablicą danych. Błąd podczas porównania elementów.

0

Witam, natrafiłem na dziwny błąd podczas porównywania elementów tablicy. W momencie porównania wychodzi bład : Uncaught TypeError: Cannot read property '1' of undefined, nie jestem wstanie dojść do tego czym to jest spowodowane. Może, ktoś, coś? Dzięki z góry.

let array = [ [ '2000', 2 ],
                  [ '103', 2 ],
                  [ '123', 6 ],
                  [ '4444', 16 ],
                  [ '99', 18 ] ];    
    for(let i = 0 ; i<array.length; i++){
        if(array[i][1] == array[i+1][1]){
           console.log("yes");
        }
    }   
2

Wychodzisz poza tablicę, bo sprawdzasz i+1 element.

i < (array.length - 1)
0

może czegoś nie rozumie ale: array[ wiersz + 1] [ kolumna ] --> wskazując i+1 teoretycznie wskazuje kolejny wiersz, który na powyższym przykładzie po iteracjach pętli powinien wskazywać kolejno 2 -> 6 -> 16 -> 18 ? Jeśli tak nie jest to jak powinien wyglądać if ? Chodzi o to by porównywało elementy kolumny drugiej czyli [ 2 z 2 , 2 z 6 , 6 z 16 , 16 z 18] ?

3

Elementy w tablicy iterowane są od 0

Więc masz tablicę z 5 elementami, ale kolejne elementy mają indeksy:

array[0] = [ '2000', 2 ]
array[1] = [ '103', 2 ]
array[2] = [ '123', 6 ]
array[3] = [ '4444', 16 ]
array[4] =  [ '99', 18 ] 
for(let i = 0 ; i<array.length; i++)

array.length ma wartość 5

U ciebie ostatni przebieg pętli wygląda tak:

if(array[4][1] == array[4+1][1])

Czyli odwołujesz isę do elementu

array[4+1]  => array[5]

a taki nie istnieje

Mam nadzieję, że jasno rozpisałem?

0

teraz zrozumiałem, dziękuję Ci bardzo za pomoc. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1