Számjegyek ellenőrzése JavaScriptben

Tegyük fel, hogy adott egy szám:

javascriptlet num = 12345;

Ha megpróbáljuk a szám első karakterére hivatkozni, az váratlan viselkedést fog eredményezni:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // ez fog lefutni
}

Ahogy már tudnod kell, a probléma az, hogy egy sztring karaktereihez lehet hivatkozni, de egy szám számjegyeihez nem:

javascriptlet num = 12345;
console.log(num[0]); // undefined-ot fog kiírni

A probléma megoldásához alakítsuk át a számunkat szöveggé:

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

if (str[0] == 1) {
  console.log('+++'); // ez fog lefutni
} else {
  console.log('---');
}

Nem szükséges új változót bevezetni, alkalmazhatjuk a [0]-t közvetlenül a String függvény eredményére:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('helyes'); // 'helyes'-et fog kiírni
} else {
  console.log('helytelen');
}

Tegyük fel most, hogy azt szeretnénk ellenőrizni, hogy az első számjegy egyenlő-e 1-gyel vagy 2-vel. Írjuk meg a megfelelő kódot:

javascriptlet num = 12345;

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

Ebben az esetben az történik, hogy a String(num)[0] konstrukéció kétszer ismétlődik. Ez egyrészt hosszadalmas, másrészt nem optimális, mivel kétszer alakítjuk át a számot szöveggé - a második alkalommal felesleges, és a program erőforrásai erre pazarolódnak.

Javítsuk a problémát:

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

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

Adott egy egész szám. Írj egy feltételt, amely ellenőrzi, hogy a szám utolsó számjegye egyenlő-e nullával.

Задание 2

Tegyük fel, hogy a num változóban egy szám tárolódik. Határozd meg, hogy a szám páros vagy páratlan. Egy szám páros, ha az utolsó karaktere 0, 2, 4, 6 vagy 8, és páratlan egyébként.