12/04/2026 18:17น.

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
| Feature | Go | JavaScript |
|---|---|---|
| Key Type | ต้องระบุ type | ทุก type (Map) / string (Object) |
| Value Type | ต้องระบุ type | ทุก type |
| Iteration Order | ไม่ guarantee | ES6 Map: ตามลำดับเพิ่ม |
| Performance | สูง | ปานกลาง |
| Methods / Functions | built-in: make, delete | Map: set, get, has, delete |
| Use Case | Data 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/