Számjegyek ellenőrzése JavaScriptben
Tegyük fel, hogy adott egy szám:
let num = 12345;
Ha megpróbáljuk a szám első karakterére hivatkozni, az váratlan viselkedést fog eredményezni:
let 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:
let 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é:
let 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:
let 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:
let 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:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Adott egy egész szám. Írj egy feltételt, amely ellenőrzi, hogy a szám utolsó számjegye egyenlő-e nullával.
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.