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