Sjekk av sifre i et tall i JavaScript

La oss si at vi har et tall:

javascriptlet num = 12345;

Et forsøk på å få tilgang til det første tegnet i tallet vil føre til uventet oppførsel:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // dette vil utløses
}

Som du allerede burde vite, er problemet at man kan få tilgang til tegn i en streng, men ikke til sifre i et tall:

javascriptlet num = 12345;
console.log(num[0]); // vil skrive ut undefined

For å løse problemet, konverterer vi tallet vårt til en streng:

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

if (str[0] == 1) {
  console.log('+++'); // dette vil utløses
} else {
  console.log('---');
}

Det er ikke nødvendig å innføre en ny variabel, man kan bruke [0] direkte på resultatet av funksjonen String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('riktig'); // vil skrive ut 'riktig'
} else {
  console.log('feil');
}

La oss nå si at vi vil sjekke om det første sifferet er lik 1, eller 2. La oss skrive den tilsvarende koden:

javascriptlet num = 12345;

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

I dette tilfellet blir det slik at konstruksjonen String(num)[0] gjentas to ganger. Dette er for det første langt, og for det andre ikke optimalt, siden vi konverterer tallet til en streng to ganger - den andre gangen blir unødvendig, og programmets resurser brukes på dette.

La oss rette opp problemet:

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

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

Det gis et heltall. Skriv en betingelse som sjekker om det siste sifferet i dette tallet er lik null.

Задание 2

La variabelen num inneholde et tall. Avgjør om tallet er partall eller oddetall. Tallet vil være partall hvis det siste tegnet er lik 0, 2, 4, 6 eller 8, og oddetall ellers.