# การใช้งาน Nested Loop ในภาษา TypeScript เพื่อแก้ปัญหาในโลกจริง
**การเขียนโปรแกรม** เป็นศิลปะที่สร้างสรรค์และแก้ปัญหาได้หลากหลายในโลกจริง วันนี้เราจะมาพูดถึงหนึ่งในเทคนิคพื้นฐานที่นักพัฒนาซอฟต์แวร์ต้องรู้จักอย่าง **nested loops** ในภาษา TypeScript ซึ่งเป็นภาษาที่มีความยืดหยุ่นสูงและเหมาะสมกับการพัฒนาแอปพลิเคชันทั้งเล็กและใหญ่ โดยเฉพาะที่มีความซับซ้อนในด้านข้อมูลและลอจิก
Nested loop หรือ "วงลูปซ้อน" คือ การที่มี loop หนึ่งวงอยู่ภายในอีกวงหนึ่ง โดยมักจะใช้เพื่อจัดการกับข้อมูลที่มีหลายมิติ เช่น รายการที่เป็นสองมิติ (เช่น ตาราง) หรือชุดของข้อมูลในกลุ่มข้อมูลใหญ่กว่า เรามาดูตัวอย่างให้ชัดเจนกันเลยดีกว่า
ตัวอย่างที่ 1: การแสดงตารางคูณ
function displayMultiplicationTable(): void {
for (let i = 1; i <= 10; i++) {
for (let j = 1; j <= 10; j++) {
process.stdout.write(`${i * j}\t`); // ใช้ '\t' เพื่อให้มีการห่างแบบ Tab ระหว่างตัวเลข
}
console.log(); // ใช้เพื่อขึ้นบรรทัดใหม่หลังจากวงลูปในทำงานเสร็จ
}
}
displayMultiplicationTable();
ในตัวอย่างนี้ วงลูปภายนอกควบคุมการเปลี่ยนแถวของตารางคูณ ในขณะที่วงลูปภายในควบคุมการแสดงผลตัวเลขในแต่ละแถว
ตัวอย่างที่ 2: การค้นหาข้อมูลในอาร์เรย์สองมิติ
function findElementIn2DArray(matrix: number[][], target: number): string {
for (let i = 0; i < matrix.length; i++) {
for (let j = 0; j < matrix[i].length; j++) {
if (matrix[i][j] === target) {
return `พบ ${target} ที่ตำแหน่ง (${i}, ${j})`;
}
}
}
return `ไม่พบ ${target} ในอาร์เรย์`;
}
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log(findElementIn2DArray(matrix, 5));
ในตัวอย่างนี้เรามีฟังก์ชันที่ถูกใช้งานเพื่อค้นหาสมาชิกในอาร์เรย์สองมิติ โดยมีการใช้ nested loop เพื่อนำเทียบค่าในแต่ละมิติ
ตัวอย่างที่ 3: การสร้างรูปทรงด้วยตัวอักษร
function drawRectangle(width: number, height: number, char: string): void {
for (let i = 0; i < height; i++) {
let line = '';
for (let j = 0; j < width; j++) {
line += char;
}
console.log(line);
}
}
drawRectangle(5, 3, '*');
ในตัวอย่างที่สาม ซึ่งเป็นการสร้างรูปสี่เหลี่ยมผืนผ้าด้วยตัวอักษร เราใช้ nested loop โดย loop ภายนอกควบคุมความสูง และ loop ภายในควบคุมความกว้างของสี่เหลี่ยม
ในการพัฒนาเว็บไซต์หรือแอปพลิเคชัน บ่อยครั้งที่เราจำเป็นต้องใช้ nested loop เพื่อแก้ไขปัญหาที่เกี่ยวข้องกับข้อมูลที่ซับซ้อน เช่น การแสดงผลข้อมูลจากฐานข้อมูลที่เป็นสองมิติ หรือการสร้าง UI ที่มีความซับซ้อน เช่น ตารางข้อมูลหรือกริด
ตัวอย่างเช่นในการพัฒนาเกมส์ การใช้ nested loop สามารถช่วยให้เราควบคุมแต่ละช่องในกริดของเกมส์ หรือในการวิเคราะห์ข้อมูลตามจุดที่ทับซ้อนกันของกราฟิกในกราฟที่ซับซ้อน
สำหรับท่านใดที่ต้องการขึ้นแท่นเป็นผู้เชี่ยวชาญการเขียนโปรแกรม การเรียนรู้และทำความเข้าใจเกี่ยวกับเทคนิคพื้นฐานเช่นนี้จะช่วยให้คุณสามารถแก้ไขปัญหาได้หลากหลายและมีความสามารถในการออกแบบโปรแกรมที่มีความซับซ้อนมากขึ้น ที่ EPT (Expert-Programming-Tutor) เรามีหลักสูตรโปรแกรมมิ่งที่จะสอนคุณการใช้งานภาษา TypeScript และเทคนิคการเขียนโค้ดอื่นๆ เพื่อเตรียมคุณให้พร้อมสู่เส้นทางนักพัฒนาซอฟต์แวร์อย่างมืออาชีพ มาร่วมเป็นส่วนหนึ่งของเราและเริ่มสร้างสรรค์สิ่งใหม่ๆ ที่ท้าทายไปด้วยกันได้ที่ EPT สถาบันเรียนรู้ด้านการเขียนโปรแกรมที่จะเปลี่ยนคุณให้กลายเป็นผู้เชี่ยวชาญ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM