Pytanie o wartości zmiennych w tym kodzie

0

Witajcie,
jak to działa, że wyświetla się 3 1 0 2 ? I co w tym kodzie oznacza return -1 ?

function findCarLot (car) {
   for ( var i= 0; i < lot.length; i ++ {
          if ( car === lot [i] {
             return i;
       }
   }
  return -1;
}
// dalsza część kodu

var lot = [chevy, taxi, fiat1, fiat2];

var loc1 = findCarInLot (fiat2);
var loc2 = findCarLot (taxi);
var loc3 = findCarLot (chevy);
var loc4 = findCarLot (fiat1);
1

Znajduje Ci pod ktorym indexem jest element a -1 oznacza ze go nie ma w ogole

0

Ok, nie bardzo rozumiem jak tu działa ta linijka kodu

if (car === lot [i] {
  return i;
}

bo przecież operator === porównuje typ i wartość, i zwraca true lub false, a nie konkretną cyfrę

0

Poczytaj sobie czym jest if, a czym jest return...

0
jeśli (3 === 1) {
   zwróć 1;
}

A przecież zwraca 3

0

A co tu rozumieć?

if (car === lot [i] {
  return i;
}

jeżeli (zmienna_CAR === element_tablicy_LOT [o_indeksie_I] {
  zwróć_jako_wartość_funkcji aktualną_wartość_indeksu_I;
}
0

No ,
czyli 3===1 więc nie zwroci 1 bo warunek jest niespelniony. Wiec dlaczego zwroci 3 ?

0

Litości no... Idę się powiesić...

Przecież to są podstawy podstaw...

Miej człowieku sumienie, nie trać swojego i naszego czasu na to, i skończ z programowaniem. To nie dla Ciebie, serio.

1

A wiesz, co tutaj porównujesz car === lot[i]?

1

No więc łopatologicznie:

  1. for - pętla, przechodzi przez wszystkie wartości tablicy, i jest indexem
  2. if - warunek, sprawdza, czy pod danym indexem i znajduje się w tablicy szukana wartość. Jeśli zwraca true, to przechodzi do 3), jeśli nie, to sprawdza kolejny index
  3. return - zwraca wartość indexu i, jeśli if zwrócił true
  4. Zakończenie działania
3

Nie kończ z programowaniem. Zacznij po prostu uczyć się systematycznie od podstaw. I nie spiesz się. Jeżeli czegoś nie rozumiesz szukaj, jeżeli nie znajdziesz pytaj.
if() sprawdza warunek i jeżeli jest true wchodzi do środka i wykonuje instrukcję, jeżeli false pomija ją. Jeżeli if jest w pętli i przy true istrukcja zwraca iterator aktualnie wykonywanej pętli to co zwróci?

function findCarLot (car) {
   for ( var i= 0; i < lot.length; i ++ {
          if ( car === lot [i] {
             return i;
       }
1

Ta funkcja jest trochę nieszczęsna, bo używa tablicy, która nie jest do niej przekazywana. Pozwolę sobie delikatnie zmodyfikować ten kod:

function findInArray(element, array) {
    for (var i = 0; i < array.length; i++) {
        var arrayElement = array[i];
        
        if (element === arrayElement) {
            return i;
        }
    }
    return -1;
}

var letters = ['a', 'b', 'c', 'd'];
var loc1 = findInArray('a', letters);
var loc2 = findInArray('z', letters);

Tutaj masz jak ten kod się wykonuje krok po kroku https://monosnap.com/file/dGj9DpxowTW9uf1V8YP7GAgJ2IjzMD Może Ci wystarczy, bo siedzę w pociągu, więc nie opatrzę komentarzem :D Zainteresuj się tym, co to jest debugger, dzięki niemu będziesz mógł zobaczyć wykonanie i wartości zmiennych krok po kroku, tak jak ja tutaj na filmie.

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