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('---');
}
Задание 1

Duotas sveikasis skaičius. Parašykite sąlygą, kuri patikrins, ar paskutinis šio skaičiaus skaitmuo yra lygus nuliui.

Задание 2

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.