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('---');
}
Бутун сон берилган. Ушбу соннинг охирги рақами нолга тенглигини текширадиган шартни ёзинг.
Фарз қилайлик, num ўзгарувчисида сон сақланган.
Сон жуфт ёки тоқ эканлигини аниқланг. Сон жуфт бўлади,
агар охирги рақам 0, 2, 4,
6 ёки 8 га тенг бўлса,
ва акс ҳолда тоқ бўлади.