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 га тенг бўлса, ва акс ҳолда тоқ бўлади.