Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การเปลี่ยนครึ่งหลังของตัวเลขสตริงเป็นศูนย์ใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงตัวเลขเป็นอาร์กิวเมนต์เดียว ฟังก์ชันควรคืนค่าตัวเลขอินพุตที่ครึ่งหลังของหลักตัวเลขถูกเปลี่ยนเป็น 0

ในกรณีที่ตัวเลขมีหลักคี่ หลักกลางและหลังจากนั้นควรเปลี่ยนเป็น 0

เช่น:

938473 → 938000

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

const num = '938473';
const convertHalf = (num = '') => {
  let i = num.toString();
  let j = Math.floor(i.length / 2);
  if (j * 2 === i.length) {
    return parseInt(i.slice(0, j) + '0'.repeat(j));
  } else {
    return parseInt(i.slice(0, j) + '0'.repeat(j + 1));
  }
};
console.log(convertHalf(num));

ผลลัพธ์

938000

คำอธิบายเพิ่มเติม

938473 (6 หลัก, คู่) → ครึ่งแรก 3 หลัก: 938, ครึ่งหลัง 3 หลัก: 000 → 938000 ถ้าคี่ เช่น 12345 (5 หลัก) → floor(5/2)=2 → slice(0,2)='12' + '0'.repeat(3)='000' → 12000 (หลักที่ 3,4,5 กลายเป็น 0)