โจทย์
แบ่ง string เป็น n ส่วนเท่ากัน (n หารความยาว string ลงตัว) คืน array ของ substrings
ตัวอย่างโค้ด
const str = 'this is a sample string';
const num = 5;
const divideEqual = (str, num) => {
const len = str.length / num;
const creds = str.split("").reduce((acc, val) => {
let { res, currInd } = acc;
if(!res[currInd] || res[currInd].length < len){
res[currInd] = (res[currInd] || "") + val;
}else{
res[++currInd] = val;
};
return { res, currInd };
}, { res: [], currInd: 0 });
return creds.res;
};
console.log(divideEqual(str, num));
ผลลัพธ์
[ 'this ', 'is a ', 'sampl', 'e str', 'ing' ]
คำอธิบาย
string ความยาว 25 ตัวอักษร หาร 5 = 5 ตัวอักษรต่อส่วนreduce สร้าง array res และ index currInd
เติมตัวอักษรเข้า res[currInd] จนครบ len แล้วเพิ่ม currInd
ผล: 5 substrings ยาว 5 chars แต่ละอัน