แบ่งตัวเลข sum เป็นอาร์เรย์ขนาด len โดยแต่ละค่าเท่ากัน (แบ่งเท่าๆ กัน)
ตัวอย่างโค้ด
const len = 8;
const sum = 5;
const splitNumber = (len, sum) => {
const res = [];
for (let i = 0; i < len; i++) {
res.push(sum / len);
}
return res;
};
console.log(splitNumber(len, sum));
ผลลัพธ์
[ 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625 ]
วิธีแบบ Functional
const splitNumber = (len, sum) =>
Array.from({ length: len }, () => sum / len);
// หรือถ้าต้องการจำนวนเต็ม (integer partition)
const splitInteger = (len, sum) => {
const base = Math.floor(sum / len);
const remainder = sum % len;
return Array.from({ length: len }, (_, i) => base + (i < remainder ? 1 : 0));
};
console.log(splitInteger(8, 5)); // [1, 1, 1, 1, 1, 0, 0, 0] ผลรวม = 5