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('---');
}
Задание 1

Imepewa nambari kamili. Andika sharti, ambalo litakagua, kama tarakimu ya mwisho ya hii nambari ni sawa na sifuri.

Задание 2

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.