Skaičiaus skaitmenų tikrinimas JavaScript
Tarkime, kad turime skaičių:
javascriptlet num = 12345;
Bandymas kreiptis į pirmąjį skaičiaus simbolį sukels netikėtą elgesį:
javascriptlet 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:
javascriptlet num = 12345;
console.log(num[0]); // išves undefined
Norėdami išspręsti problemą, paverskime savo skaičių į eilutę:
javascriptlet 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:
javascriptlet 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ą:
javascriptlet 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ą:
javascriptlet 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.