สมมติว่ามีช่วงตัวเลขเริ่มจาก 0 ถึง n (จำนวนเต็มบวก) เราต้องเขียนฟังก์ชันที่รับสองพารามิเตอร์: ค่าสูงสุดของช่วง (interval) และจำนวนช่วงย่อยที่ต้องการ (num) ฟังก์ชันจะแบ่งช่วงหลักออกเป็นช่วงย่อยเท่าๆ กัน (ถ้าเป็นไปได้) และคืนอาร์เรย์ของช่วงย่อยเหล่านั้น
ตัวอย่าง: หากอินพุตคือ 3 และ 2 ช่วงหลักคือ [0, 3] = [0, 1, 2, 3] แบ่งเป็น 2 ช่วงจะได้:
const output = [ [0, 1], [2, 3] ];
ขอบเขตของช่วงย่อยจะเป็นจำนวนเต็มเสมอ
ตัวอย่างโค้ด
const getIntervals = (interval, num) => {
const size = Math.floor(interval / num);
const res = [];
for (let i = 0; i <= interval; i += size) {
const a = i === 0 ? i : i + 1;
const b = i + size > interval ? interval : i + size;
if (a < interval) {
res.push([a, b]);
}
}
return res;
};
console.log(getIntervals(3, 2));
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
[ [0, 1], [2, 3] ]