Pomoc w wytłumaczeniu zadań z książki

0

Hej, mam problem ze zrozumieniem zadań z książki. Mianowicie

function countChar(string, ch) {
  let counted = 0;
  for (let i = 0; i < string.length; i++) {
    if (string[i] == ch) {
      counted += 1;
    }
  }
  return counted;
}

function countBs(string) {
  return countChar(string, "B");
}

console.log(countBs("BBC"));
// → 2
console.log(countChar("kakkerlak", "k"));
// → 4

Możecie wytłumaczyć dlaczego jest tutaj użyta pętla for? Dobrze rozumiem że iteracji pętli jest tyle ile znaków ma dany string i po prostu pętla "przechodzi" przez każdy znak? Co oznacza to [i] przy string?

Drugie zadanie.

function isEven(n) {
  if (n == 0) return true;
  else if (n == 1) return false;
  else if (n < 0) return isEven(-n);
  else return isEven(n - 2);
}

console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → false

Jeżeli wybiorę liczbę np. -4 to wtedy zachodzi akcja return isEven(-n). Tego nie rozumiem, co wtedy się zwraca? isEven(-(-4) co daje 4 czyli liczbę parzystą?

1
  1. Stringa można traktować jak tablicę znaków i indeksować za pomocą [i], więc cośtam[i] to po prostu i-ty znak stringa
  2. Zwraca się wynik działania funkcji isEven() z argumentem -n czyli --4 czyli 4.

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