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

ทุกวิธีการแบ่งอาร์เรย์สตริงเป็นสองส่วนใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของลิเทอรัลอย่างน้อย 2 สมาชิก ฟังก์ชันควรคืนค่าทุกวิธีการแบ่งอาร์เรย์เป็นสองส่วนที่ไม่ว่าง

เช่น สำหรับอาร์เรย์ ["az", "toto", "picaro", "zone", "kiwi"]

ความเป็นไปได้คือ:

"(az, toto picaro zone kiwi)(az toto, picaro zone kiwi)(az toto picaro, zone kiwi)(az toto picaro zone, kiwi)"

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

const arr = ["az", "toto", "picaro", "zone", "kiwi"];
const findAllPossiblities = (arr = []) => {
  let array;
  const res = [];
  for (let i = 1; i < arr.length; i++) {
    array = [];
    array.push(arr.slice(0, i).join(" "));
    array.push(arr.slice(i).join(" "));
    res.push(array);
  }
  return res;
};
console.log(findAllPossiblities(arr));

ผลลัพธ์

[ [ 'az', 'toto picaro zone kiwi' ], [ 'az toto', 'picaro zone kiwi' ], [ 'az toto picaro', 'zone kiwi' ], [ 'az toto picaro zone', 'kiwi' ] ]

คำอธิบายเพิ่มเติม

แบ่งที่ตำแหน่ง i=1 ถึง n-1 ส่วนซ้าย slice(0,i) ส่วนขวา slice(i) join ด้วย space จำนวนวิธี = n-1 วิธี สำหรับ n=5 ได้ 4 วิธี