Skaičiaus skaitmenų tikrinimas JavaScript
Tarkime, kad turime skaičių:
let num = 12345;
Bandymas kreiptis į pirmąjį skaičiaus simbolį sukels netikėtą elgesį:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // suveiks tai
}
Kaip jau turėtumėte žinoti, problema yra ta, kad galima kreiptis į eilutės simbolius, bet negalima - į skaičiaus skaitmenis:
let num = 12345;
console.log(num[0]); // išves undefined
Norėdami išspręsti problemą, paverskime savo skaičių į eilutę:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // suveiks tai
} else {
console.log('---');
}
Nebūtina įvesti naujo kintamojo,
galima pritaikyti [0] tiesiogiai
prie funkcijos String rezultato:
let num = 12345;
if (String(num)[0] == 1) {
console.log('teisinga'); // išves 'teisinga'
} else {
console.log('neteisinga');
}
Tarkime, kad dabar norime patikrinti, ar pirmasis skaitmuo
yra lygus 1, arba 2.
Parašykime atitinkamą kodą:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Šiuo atveju pasirodo, kad konstrukcija
String(num)[0] kartosis du kartus.
Tai, pirma, ilgai, o antra, neoptimalu,
nes mes du kartus paverčiame skaičių į eilutę
- antrasis kartas pasirodo nereikalingas, o programos
resursai tam išleidžiami.
Išspręskime problemą:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Duotas sveikasis skaičius. Parašykite sąlygą, kuri patikrins, ar paskutinis šio skaičiaus skaitmuo yra lygus nuliui.
Tarkime, kintamajame num yra saugomas skaičius.
Nustatykite, ar skaičius yra lyginis, ar nelyginis. Skaičius bus
lyginis, jei paskutinis simbolis yra lygus 0,
2, 4, 6 arba 8,
ir nelyginis priešingu atveju.