Sprawdzanie cyfr liczby w JavaScript

Załóżmy, że mamy daną liczbę:

javascriptlet num = 12345;

Próba odwołania się do pierwszego znaku liczby doprowadzi do nieoczekiwanego zachowania:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // zadziała to
}

Jak już powinieneś wiedzieć, problem polega na tym, że można odwoływać się do znaków ciągu znaków, ale nie można - do cyfr liczby:

javascriptlet num = 12345;
console.log(num[0]); // wypisze undefined

Aby rozwiązać problem, przekształćmy naszą liczbę na ciąg znaków:

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // zadziała to
} else {
  console.log('---');
}

Nie jest konieczne wprowadzanie nowej zmiennej, można zastosować [0] bezpośrednio do wyniku funkcji String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('prawda'); // wypisze 'prawda'
} else {
  console.log('nieprawda');
}

Załóżmy teraz, że chcemy sprawdzić, czy pierwsza cyfra jest równa 1, albo 2. Napiszmy odpowiedni kod:

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

W tym przypadku okazuje się, że konstrukcja String(num)[0] powtórzy się dwa razy. Jest to, po pierwsze, długie, a po drugie, nieoptymalne, ponieważ dwa razy przekształcamy liczbę na ciąg znaków - drugi raz okazuje się zbędny, a zasoby programu są na to marnowane.

Naprawmy problem:

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Dana jest liczba całkowita. Napisz warunek, który sprawdzi, czy ostatnia cyfra tej liczby jest równa zero.

Задание 2

Załóżmy, że w zmiennej num przechowywana jest liczba. Określ, czy liczba jest parzysta, czy nie. Liczba będzie parzysta, jeśli ostatni znak jest równy 0, 2, 4, 6 lub 8, i nieparzysta w przeciwnym przypadku.