Թվի թվանշանների ստուգումը JavaScript-ում

Ենթադրենք մեզ տրված է թիվ.

javascriptlet num = 12345;

Թվի առաջին սիմվոլին դիմելու փորձը կհանգեցնի անսպասելի վարքի.

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // կգործի սա
}

Ինչպես արդեն պետք է իմանաք, խնդիրը կայանում է նրանում, որ կարելի է դիմել տողի սիմվոլներին, բայց ոչ թե թվի թվանշաններին.

javascriptlet num = 12345;
console.log(num[0]); // կարտադրի undefined

Խնդիրը լուծելու համար մեր թիվը վերափոխենք տողի.

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // կգործի սա
} else {
  console.log('---');
}

Պարտադիր չէ ներմուծել նոր փոփոխական, կարելի է կիրառել [0] ուղղակիորեն String ֆունկցիայի արդյունքին.

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('ճիշտ'); // կարտադրի 'ճիշտ'
} else {
  console.log('սխալ');
}

Ենթադրենք այժմ ուզում ենք ստուգել առաջին թվանշանը այն բանի համար, որ այն հավասար է 1, կամ 2. Գրենք համապատասխան կոդը.

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

Այս դեպքում ստացվում է, որ կոնստրուկցիան String(num)[0] կկրկնվի երկու անգամ. Սա, նախ և առաջ, երկար է, և, երկրորդ, օպտիմալ չէ, քանի որ երկու անգամ ենք թիվը վերափոխում տողի - երկրորդ անգամը ավելորդ է ստացվում, իսկ ծրագրի ռեսուրսները ծախսվում են դրա վրա.

Ուղղենք խնդիրը.

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Տրված է ամբողջ թիվ: Գրեք պայման, որն կստուգի, արդյոք այդ թվի վերջին թվանշանը հավասար է զրոյի.

Задание 2

Ենթադրենք num փոփոխականում պահվում է թիվ: Որոշեք՝ թիվը զույգ է, թե կենտ: Թիվը կլինի զույգ, եթե վերջին սիմվոլը հավասար է 0, 2, 4, 6 կամ 8, և կենտ՝ հակառակ դեպքում.