Ukaguzi wa Tarakimu za Nambari kwenye JavaScript
Hebu tuchukulie tuna nambari ifuatayo:
let num = 12345;
Jaribio la kurejelea herufi ya kwanza ya nambari litasababisha tabia isiyotarajiwa:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // hii ndio itafanya kazi
}
Kama unavyopaswa kujua tayari, shida ni kwamba, inawezekana kurejelea wahusika wa mfuatano, lakini haiwezekani - kwa tarakimu za nambari:
let num = 12345;
console.log(num[0]); // itaonyesha undefined
Ili kutatua tatizo, tubadilishe nambari yetu kuwa mfuatano:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // hii ndio itafanya kazi
} else {
console.log('---');
}
Si lazima kuanzisha kutofautisha kipya,
inawezekana kutumia [0] moja kwa moja
kwa matokeo ya kitendo String:
let num = 12345;
if (String(num)[0] == 1) {
console.log('kweli'); // itaonyesha 'kweli'
} else {
console.log('si kweli');
}
Hebu sasa tunataka kukagua tarakimu ya kwanza
ili kuona kama ni sawa na 1, au 2.
Tuandae msimbo unaofanana:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Katika kesi hii, inatokea kuwa utungaji
String(num)[0] unarudiwa mara mbili.
Hii, kwanza, ni ndefu, na pili, haifai kiubora,
kwa kuwa tunabadilisha nambari kuwa mfuatano mara mbili
- mara ya pili inakuwa ya ziada, na rasilimali
za programu hutumika kwa hili.
Tuarekebishe tatizo:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Imepewa nambari kamili. Andika sharti, ambalo litakagua, kama tarakimu ya mwisho ya hii nambari ni sawa na sifuri.
Hebu katika kutofautisha num nambari ihifadhiwe.
Amua, nambari ni shufwa au la. Nambari itakuwa
shufwa, ikiwa herufi ya mwisho ni sawa na 0,
2, 4, 6 au 8,
na isiyo shufwa vinginevyo.