ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลข num ซึ่งแทนจำนวนวินาทีเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
ฟังก์ชันของเราควรสร้างและส่งคืนสตริงที่มีข้อมูลปี วัน ชั่วโมงและนาทีที่อยู่ในวินาทีเหล่านั้น อย่างชัดเจนหากมีเลย
สำหรับจุดประสงค์ของคำถามนี้ เราถือว่าปีทั้งหมดมี 365 วัน
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const num = 5454776657;
จากนั้นผลลัพธ์ควรเป็น −
const output = '172 years, 353 days, 23 hours, 44 minutes and 17 seconds';
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const findTime = (num) => { if(num < 1){ return '0' }; const qualifier = num => (num > 1 ? 's' : '') const numToStr = (num, unit) => num > 0 ? ` ${num} ${unit}${qualifier(num)}` : '' const oneMinute = 60; const oneHour = oneMinute * 60; const oneDay = oneHour * 24; const oneYear = oneDay * 365; const times = { year: ~~(num / oneYear), day: ~~((num % oneYear) / oneDay), hour: ~~((num % oneDay) / oneHour), minute: ~~((num % oneHour) / oneMinute), second: num % oneMinute, }; let str = ''; for (let [key, value] of Object.entries(times)) { str += numToStr(times[key], key) } const arr = str.trim().split(' ') const res = [] arr.forEach((x, i) => { if (i % 2 === 0 && i !== 0) res.push(i === arr.length - 2 ? 'and' : ',') res.push(x) }) return res.join(' ').replace(/\s,/g, ',') } console.log(findTime(5454776657));
ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
172 years, 353 days, 23 hours, 44 minutes and 17 seconds