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

แบ่งสตริงเป็นส่วนเท่ากันใน JavaScript


เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงและตัวเลข n เป็นสองอาร์กิวเมนต์ (n ต้องหารความยาวสตริงลงตัว) และคืนค่าอาร์เรย์ของสตริง n ตัวที่มีความยาวเท่ากัน

เช่น

ถ้าสตริงคือ "helloo" และตัวเลขคือ 3 ผลลัพธ์ควรเป็น: ["ho", "eo", "ll"]

ที่นี่ แต่ละสับสตริงมีตัวอักษร (ความยาวอาร์เรย์/n) ตัว และแต่ละสับสตริงสร้างขึ้นโดยการนำตัวอักษรแรกและตัวสุดท้ายของสตริงมาสลับกัน

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน

ตัวอย่าง

const str = 'helloo';
const splitEqual = (str, n) => {
  if(str.length % n !== 0){
    return false;
  }
  const len = str.length / n;
  const strArray = str.split("");
  const arr = [];
  let i = 0, char;
  while(strArray.length){
    if(i % 2 === 0){
      char = strArray.shift();
    }else{
      char = strArray.pop();
    };
    if(i % len === 0){
      arr[i / len] = char;
    }else{
      arr[Math.floor(i / len)] += char;
    };
    i++;
  };
  return arr;
};
console.log(splitEqual(str, 3));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้

[ 'ho', 'eo', 'll' ]