Arvu numbrite kontrollimine JavaScriptis

Oletame, et meil on antud number:

javascriptlet num = 12345;

Katse viidata arvu esimesele tähemärgile viib ootamatu käitumiseni:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // käivitub see
}

Nagu te juba teaksite, on probleem selles, et saab viidata stringi tähemärkidele, kuid ei saa - arvu numbritele:

javascriptlet num = 12345;
console.log(num[0]); // väljastab undefined

Probleemi lahendamiseks teisendame oma arvu stringiks:

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

if (str[0] == 1) {
  console.log('+++'); // käivitub see
} else {
  console.log('---');
}

Pole vaja lisada uut muutujat, saab rakendada [0] otse funktsiooni String tulemusele:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('õige'); // väljastab 'õige'
} else {
  console.log('vale');
}

Oletame nüüd, et tahame kontrollida, kas esimene number on võrdne 1-ga või 2-ga. Kirjutame vastava koodi:

javascriptlet num = 12345;

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

Sel juhul tuleb välja, et konstruktsioon String(num)[0] kordub kaks korda. See on esiteks pikk ja teiseks pole optimeeritud, kuna me teisendame arvu stringiks kaks korda - teine kord osutub liigseks, samas kui programmi resursse kulutatakse selle peale.

Parandame probleemi:

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

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

Antud on täisarv. Kirjutage tingimus, mis kontrollib, kas selle arvu viimane number on võrdne nulliga.

Задание 2

Oletame, et muutujas num hoitakse arvu. Määrake, kas arv on paaris või paaritu. Arv on paaris, kui viimane sümbol on võrdne 0-ga, 2-ga, 4-ga, 6-ga või 8-ga, ja paaritu vastasel juhul.