Array methods ทำให้โค้ดสั้นและอ่านง่ายขึ้นมาก แต่ถ้าเลือกผิดตัว โค้ดจะทำงานเกินจำเป็นหรืออ่านยากกว่าเดิม บทความนี้รวม 6 ตัวที่ใช้บ่อยที่สุด พร้อมกฎง่ายๆ ในการเลือก
map — แปลงทุกตัว
ใช้เมื่ออยากได้ array ใหม่ที่ จำนวนเท่าเดิม แต่หน้าตาเปลี่ยนไป
const prices = [100, 250, 80];
const withVat = prices.map(p => p * 1.07);
// [107, 267.5, 85.6]filter — เลือกบางตัว
ใช้เมื่ออยากได้ array ใหม่ที่มีเฉพาะสมาชิกที่ตรงเงื่อนไข
const users = [{ name: "ploy", active: true }, { name: "nut", active: false }];
const active = users.filter(u => u.active);find และ some — หาแค่ตัวเดียว
ถ้าต้องการ ตัวแรก ที่ตรงเงื่อนไข ใช้ find ถ้าแค่อยากรู้ว่า มีไหม ใช้ some ทั้งคู่หยุดทันทีที่เจอ จึงเร็วกว่า filter ที่ต้องวนครบทุกตัว
users.find(u => u.name === "ploy"); // { name: "ploy", active: true }
users.some(u => !u.active); // truereduce — รวมเป็นค่าเดียว
ใช้รวมทั้ง array ให้เหลือค่าเดียว เช่น ผลรวม หรือ object สรุป
const total = prices.reduce((sum, p) => sum + p, 0); // 430อย่าใช้ reduce ทุกเรื่องถ้า reduce ยาวเกิน 3–4 บรรทัด ลองแยกเป็น map + filter หรือใช้ for…of ธรรมดา คนอ่านจะขอบคุณคุณ
at — อ่านจากท้าย
at(-1) คือสมาชิกตัวสุดท้าย อ่านง่ายกว่า arr[arr.length - 1]
[1, 2, 3].at(-1); // 3เลือกยังไง
| อยากได้ | ใช้ |
|---|---|
| array ใหม่ จำนวนเท่าเดิม | map |
| array ใหม่ บางตัว | filter |
| สมาชิกตัวเดียว | find |
| true / false | some / every |
| ค่าเดียวจากทั้ง array | reduce |