การดู : 221

12/04/2026 18:17น.

JS2GO EP.15 การใช้ Maps ใน Go และ JavaScript

JS2GO EP.15 การใช้ Maps ใน Go และ JavaScript

#Go

#JavaScript

#Maps

#programming

Maps หรือโครงสร้างแบบ key-value เป็นเครื่องมือสำคัญในการจัดเก็บและเข้าถึงข้อมูลอย่างมีประสิทธิภาพ ทั้งใน Go และ JavaScript แต่ละภาษามีวิธีการใช้งาน Maps ที่แตกต่างกัน บทความนี้จะพาคุณไปเรียนรู้วิธีสร้าง แก้ไข และเข้าถึงข้อมูลใน Maps พร้อมตัวอย่างโค้ด ข้อดีข้อเสีย และแนวทางการใช้งานที่เหมาะสมกับโปรเจกต์จริง

 

Maps ใน Go

 

ใน Go Maps เป็น built-in type สำหรับเก็บข้อมูลแบบ key-value

 

การประกาศและสร้าง Map

package main

import "fmt"

func main() {
    // สร้าง map ว่าง
    m := make(map[string]int)

    // เพิ่มข้อมูล
    m["Alice"] = 25
    m["Bob"] = 30

    // อ่านข้อมูล
    fmt.Println("Alice:", m["Alice"])  // Alice: 25

    // ลบ key
    delete(m, "Bob")

    // ตรวจสอบ key
    age, exists := m["Bob"]
    if !exists {
        fmt.Println("Bob not found")  // Bob not found
    }

    fmt.Println(m)  // map[Alice:25]
}

 

ข้อดี

✨ การเข้าถึงและแก้ไขข้อมูลเร็วมาก
✨ ประเภทของ key และ value ถูกกำหนดชัดเจน ป้องกันข้อผิดพลาด

 

ข้อเสีย

⚠️ ต้องกำหนดประเภทของ key และ value
⚠️ ไม่สามารถ iterate ตามลำดับการเพิ่มข้อมูลได้ (ไม่มี order guarantee)

 

Maps ใน JavaScript

 

ใน JavaScript เราสามารถใช้ Object หรือ Map (ES6)

 

ใช้ Object เป็น Map

let obj = {};
obj["Alice"] = 25;
obj["Bob"] = 30;

console.log(obj["Alice"]); // 25

delete obj["Bob"];
console.log(obj); // { Alice: 25 }

 

ใช้ ES6 Map Object

let map = new Map();

// เพิ่มข้อมูล
map.set("Alice", 25);
map.set("Bob", 30);

// อ่านข้อมูล
console.log(map.get("Alice")); // 25

// ลบ key
map.delete("Bob");

// ตรวจสอบ key
console.log(map.has("Bob")); // false

// iterate
for (let [key, value] of map) {
    console.log(key, value); // Alice 25
}

 

ข้อดี

✨ รองรับ key ทุกประเภท ไม่จำกัดแค่ string
✨ สามารถ iterate ตามลำดับการเพิ่มข้อมูลได้ (สำหรับ ES6 Map)
✨ Methods ของ Map เช่น set, get, delete, has ใช้งานง่าย

 

ข้อเสีย

⚠️ ประสิทธิภาพอาจต่ำกว่า Go เมื่อจัดการข้อมูลขนาดใหญ่
⚠️ ต้องระวังความสับสนระหว่าง Object กับ Map

 

เปรียบเทียบการใช้งาน Maps

 

FeatureGoJavaScript
Key Typeต้องระบุ typeทุก type (Map) / string (Object)
Value Typeต้องระบุ typeทุก type
Iteration Orderไม่ guaranteeES6 Map: ตามลำดับเพิ่ม
Performanceสูงปานกลาง
Methods / Functionsbuilt-in: make, deleteMap: set, get, has, delete
Use CaseData structures ขนาดใหญ่Flexible key-value storage

 


 

สรุปและข้อแนะนำ

 

  • Go: Maps เหมาะกับโปรเจกต์ที่ต้องการ ประสิทธิภาพสูง และ type-safe
  • JavaScript: Maps เหมาะกับโปรเจกต์ที่ต้องการ ความยืดหยุ่น และ key หลายประเภท

การเลือกใช้ Maps ควรพิจารณา ขนาดข้อมูล, ประเภทของ key, และ ความต้องการ iterate ตามลำดับ

 

ตอนต่อไป

 

ใน EP.16 ของซีรีส์ JS2GO เราจะพาคุณไปเรียนรู้ Methods และ Interfaces ใน Go เทียบกับ JavaScript เพื่อเข้าใจการสร้างและใช้งานฟังก์ชันภายใน struct และ object อย่างมีประสิทธิภาพ

 

อ่านบทความ Series อื่นๆ

🔵 Facebook: https://www.facebook.com/superdev.academy.th

📸 Instagram: superdevschool

🎬 TikTok: https://www.tiktok.com/@superdevacademy?lang=th-TH

🌐 Website: https://www.superdevacademy.com/