การตรวจสอบตัวเลขของตัวเลขใน 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
และจะเป็นเลขคี่ในกรณีอื่น