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