ฟังก์ชันสำหรับรวมอาร์เรย์ให้เป็นหนึ่งเดียวใน JavaScript

ตอนนี้มาลองทำฟังก์ชันชื่อ merge กัน ซึ่งจะรับพารามิเตอร์เป็นอาร์เรย์จำนวนกี่ชุดก็ได้ แล้วนำสมาชิกทั้งหมดมารวมกันเป็นอาร์เรย์เดียว

นี่คือตัวอย่างการทำงานของฟังก์ชันของเรา:

javascriptlet result = merge([1, 2, 3], [4, 5, 6], [7, 8, 9]);
console.log(result); // จะได้ [1, 2, 3, 4, 5, 6, 7, 8, 9]

มาเริ่มลงมือทำกัน ลองเริ่มต้นด้วยการ รับอาร์เรย์ที่ส่งเข้ามาทั้งหมดในรูปแบบของ อาร์เรย์สองมิติหนึ่งชุด:

javascriptmerge([1, 2, 3], [4, 5, 6], [7, 8, 9]);

function merge(...arrs){
  console.log(arrs); // จะได้  [ [1, 2, 3,] [4, 5, 6], [7, 8, 9] ]
}

ทีนี้ลองมารวมอาร์เรย์สองมิตินี้ ให้เป็นอาร์เรย์หนึ่งมิติ เราใช้เมธอด concat ร่วมกับโอเปอเรเตอร์ spread:

javascriptlet arrs   = [ [1, 2, 3,], [4, 5, 6], [7, 8, 9] ];

let result = [].concat(...arrs);
console.log(result); // จะได้ [1, 2, 3, 4, 5, 6, 7, 8, 9]

ลองเพิ่มโค้ดนี้ลงในฟังก์ชัน merge ของเรากัน:

javascriptfunction merge(...arrs) {
  return [].concat(...arrs);
}

let result = merge([1, 2, 3], [4, 5, 6], [7, 8, 9]);
console.log(result); // จะได้ [1, 2, 3, 4, 5, 6, 7, 8, 9]

อย่างที่คุณเห็น ฟังก์ชันนี้ก็ออกมาสั้นกระชับ มากเช่นกัน