ปัญหา
เราต้องเขียนฟังก์ชัน 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)