Controleren van cijfers van een getal in JavaScript
Stel we hebben het volgende getal:
javascriptlet num = 12345;
Een poging om toegang te krijgen tot het eerste teken van het getal zal leiden tot onverwacht gedrag:
javascriptlet num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // dit wordt uitgevoerd
}
Zoals je al zou moeten weten, is het probleem dat je toegang kunt krijgen tot tekens van een string, maar niet tot cijfers van een getal:
javascriptlet num = 12345;
console.log(num[0]); // geeft undefined weer
Om het probleem op te lossen, converteren we ons getal naar een string:
javascriptlet num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // dit wordt uitgevoerd
} else {
console.log('---');
}
Het is niet nodig om een nieuwe variabele te introduceren,
je kunt [0] direct
toepassen op het resultaat van de functie String:
javascriptlet num = 12345;
if (String(num)[0] == 1) {
console.log('juist'); // geeft 'juist' weer
} else {
console.log('onjuist');
}
Stel dat we nu het eerste cijfer willen controleren
of het gelijk is aan 1, of 2.
Laten we de bijbehorende code schrijven:
javascriptlet num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
In dit geval blijkt de constructie
String(num)[0] twee keer voor te komen.
Dit is, ten eerste, lang, en ten tweede, niet optimaal,
omdat we twee keer het getal naar een string converteren
- de tweede keer is overbodig, en programma middelen
worden hieraan verspild.
Laten we het probleem oplossen:
javascriptlet num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Gegeven een geheel getal. Schrijf een voorwaarde die controleert of het laatste cijfer van dit getal gelijk is aan nul.
Stel in variabele num is een getal opgeslagen.
Bepaal of het getal even of oneven is. Het getal is
even als het laatste teken gelijk is aan 0,
2, 4, 6 of 8,
en oneven in andere gevallen.