Kontrole van syfers van 'n getal in JavaScript

Laat ons sê ons het 'n getal:

javascriptlet num = 12345;

'n Poging om na die eerste karakter van die getal te verwys sal lei tot onverwagte gedrag:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // dit sal aktiveer
}

Soos jy reeds moet weet, die probleem is dat jy na karakters van 'n string kan verwys, maar nie na syfers van 'n getal nie:

javascriptlet num = 12345;
console.log(num[0]); // sal undefined uitvoer

Om die probleem op te los, laat ons ons getal omskakel na 'n string:

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

if (str[0] == 1) {
  console.log('+++'); // dit sal aktiveer
} else {
  console.log('---');
}

Dit is nie nodig om 'n nuwe veranderlike te skep nie, jy kan [0] direk toepas op die resultaat van die String funksie:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('waar'); // sal 'waar' uitvoer
} else {
  console.log('onwaar');
}

Laat ons nou sê ons wil die eerste syfer kontroleer of dit gelyk is aan 1, of 2. Laat ons die ooreenstemmende kode skryf:

javascriptlet num = 12345;

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

In hierdie geval blyk dit dat die konstruksie String(num)[0] twee keer herhaal word. Dit is, eerstens, lank, en tweedens, nie optimaal nie, aangesien ons die getal twee keer na 'n string omskakel - die tweede keer is oorbodig, en die program se hulpbronne word daaraan bestee.

Laat ons die probleem regstel:

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

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

'n Heelgetal word gegee. Skryf 'n voorwaarde wat sal kontroleer of die laaste syfer van hierdie getal gelyk is aan nul.

Задание 2

Laat in die veranderlike num 'n getal gestoor wees. Bepaal of die getal ewe of onewe is. Die getal sal ewe wees as die laaste karakter gelyk is aan 0, 2, 4, 6 of 8, en onewe andersins.