Ukaguzi wa Tarakimu za Nambari kwenye JavaScript
Hebu tuchukulie tuna nambari ifuatayo:
javascriptlet num = 12345;
Jaribio la kurejelea herufi ya kwanza ya nambari litasababisha tabia isiyotarajiwa:
javascriptlet 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:
javascriptlet num = 12345;
console.log(num[0]); // itaonyesha undefined
Ili kutatua tatizo, tubadilishe nambari yetu kuwa mfuatano:
javascriptlet 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:
javascriptlet 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:
javascriptlet 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:
javascriptlet 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.