Numeron numeroiden tarkistus JavaScriptissä
Oletetaan, että meillä on numero:
let num = 12345;
Yritys viitata numeron ensimmäiseen merkkiin johtaa odottamattomaan käyttäytymiseen:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // tämä toimii
}
Kuten jo tiedät, ongelma on siinä, että merkkijonon merkkeihin voi viitata, mutta numeroihin ei:
let num = 12345;
console.log(num[0]); // tulostaa undefined
Ongelman ratkaisemiseksi muunnetaan numeromme merkkijonoksi:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // tämä toimii
} else {
console.log('---');
}
Ei ole tarpeen ottaa käyttöön uutta muuttujaa,
voit soveltaa [0] suoraan
String-funktion tulokseen:
let num = 12345;
if (String(num)[0] == 1) {
console.log('oikein'); // tulostaa 'oikein'
} else {
console.log('väärin');
}
Oletetaan nyt, että haluamme tarkistaa, onko ensimmäinen numero
yhtä suuri kuin 1 tai 2.
Kirjoitetaan vastaava koodi:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Tässä tapauksessa käy niin, että rakenne
String(num)[0] toistuu kahdesti.
Tämä on ensinnäkin pitkää, ja toiseksi, ei optimaalista,
koska muunnamme numeron merkkijonoksi kahdesti
- toinen kerta on tarpeeton, ja ohjelman resurssit
kuluvat siihen.
Korjataan ongelma:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Annettu kokonaisluku. Kirjoita ehto, joka tarkistaa, onko tämän numeron viimeinen numero nolla.
Oletetaan, että muuttuja num sisältää numeron.
Määritä, onko numero parillinen vai ei. Numero on
parillinen, jos viimeinen merkki on 0,
2, 4, 6 tai 8,
ja pariton muussa tapauksessa.