Skaitļa ciparu pārbaude JavaScript
Pieņemsim, ka mums ir dots skaitlis:
let num = 12345;
Mēģinājums piekļūt skaitļa pirmajam simbolam izraisīs negaidītu rezultātu:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // izpildīsies šis
}
Kā jau vajadzētu zināt, problēma ir tajā, ka var piekļūt virknes simboliem, bet nevar - skaitļa cipariem:
let num = 12345;
console.log(num[0]); // izvadīs undefined
Lai atrisinātu problēmu, pārveidosim mūsu skaitli par virkni:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // izpildīsies šis
} else {
console.log('---');
}
Nav obligāti jāievieš jauns mainīgais,
var izmantot [0] tieši
funkcijas String rezultātam:
let num = 12345;
if (String(num)[0] == 1) {
console.log('pareizi'); // izvadīs 'pareizi'
} else {
console.log('nepareizi');
}
Pieņemsim, ka mēs vēlamies pārbaudīt, vai pirmais cipars
ir vienāds ar 1 vai 2.
Uzrakstīsim atbilstošo kodu:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Šajā gadījumā iznāk, ka konstrukcija
String(num)[0] atkārtojas divas reizes.
Tas, pirmkārt, ir garš, un, otrkārt, neoptimāls,
jo mēs divas reizes pārveidojam skaitli par virkni
- otrā reize izrādās lieka, un programmas
resursi tiek tērēti.
Izlabosim problēmu:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Dots vesels skaitlis. Uzrakstiet nosacījumu, kas pārbaudīs, vai šī skaitļa pēdējais cipars ir vienāds ar nulli.
Pieņemsim, ka mainīgajā num ir glabāts skaitlis.
Nosakiet, vai skaitlis ir pāra vai nepāra. Skaitlis būs
pāra, ja pēdējais cipars ir vienāds ar 0,
2, 4, 6 vai 8,
un nepāra pretējā gadījumā.