Թվի թվանշանների ստուգումը JavaScript-ում
Ենթադրենք մեզ տրված է թիվ.
let num = 12345;
Թվի առաջին սիմվոլին դիմելու փորձը կհանգեցնի անսպասելի վարքի.
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // կգործի սա
}
Ինչպես արդեն պետք է իմանաք, խնդիրը կայանում է նրանում, որ կարելի է դիմել տողի սիմվոլներին, բայց ոչ թե թվի թվանշաններին.
let num = 12345;
console.log(num[0]); // կարտադրի undefined
Խնդիրը լուծելու համար մեր թիվը վերափոխենք տողի.
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // կգործի սա
} else {
console.log('---');
}
Պարտադիր չէ ներմուծել նոր փոփոխական,
կարելի է կիրառել [0] ուղղակիորեն
String ֆունկցիայի արդյունքին.
let num = 12345;
if (String(num)[0] == 1) {
console.log('ճիշտ'); // կարտադրի 'ճիշտ'
} else {
console.log('սխալ');
}
Ենթադրենք այժմ ուզում ենք ստուգել առաջին թվանշանը
այն բանի համար, որ այն հավասար է 1, կամ 2.
Գրենք համապատասխան կոդը.
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Այս դեպքում ստացվում է, որ կոնստրուկցիան
String(num)[0] կկրկնվի երկու անգամ.
Սա, նախ և առաջ, երկար է, և, երկրորդ, օպտիմալ չէ,
քանի որ երկու անգամ ենք թիվը վերափոխում տողի
- երկրորդ անգամը ավելորդ է ստացվում, իսկ ծրագրի
ռեսուրսները ծախսվում են դրա վրա.
Ուղղենք խնդիրը.
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Տրված է ամբողջ թիվ: Գրեք պայման, որն կստուգի, արդյոք այդ թվի վերջին թվանշանը հավասար է զրոյի.
Ենթադրենք num փոփոխականում պահվում է թիվ:
Որոշեք՝ թիվը զույգ է, թե կենտ: Թիվը կլինի
զույգ, եթե վերջին սիմվոլը հավասար է 0,
2, 4, 6 կամ 8,
և կենտ՝ հակառակ դեպքում.