Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แบ่ง String เป็น N ส่วนเท่ากันใน JavaScript

โจทย์

แบ่ง 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 แต่ละอัน