რიცხვის ციფრების შემოწმება 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-ს, და კენტი სხვა შემთხვევაში.