Arvu numbrite kontrollimine JavaScriptis
Oletame, et meil on antud number:
let num = 12345;
Katse viidata arvu esimesele tähemärgile viib ootamatu käitumiseni:
let 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:
let num = 12345;
console.log(num[0]); // väljastab undefined
Probleemi lahendamiseks teisendame oma arvu stringiks:
let 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:
let 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:
let 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:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Antud on täisarv. Kirjutage tingimus, mis kontrollib, kas selle arvu viimane number on võrdne nulliga.
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.