Array Object ใน JavaScript
Array Object ใช้เก็บหลายค่าในตัวแปรเดียว จัดเก็บแบบ Sequential Collection ขนาดคงที่ (แต่ใน JS ขยายได้) ของ Element ชนิดเดียวกัน (แต่ใน JS ใส่ชนิดต่างกันได้)
รายการเมธอด Array สำคัญ
| # | Method & Description |
|---|---|
| 1 | concat() - รวม Array หลายตัว คืน Array ใหม่ |
| 2 | every() - ทดสอบว่าทุก Element ผ่านเงื่อนไขหรือไม่ คืน Boolean |
| 3 | filter() - สร้าง Array ใหม่จาก Element ที่ผ่านเงื่อนไข |
| 4 | forEach() - วนลูปทำงานแต่ละ Element (ไม่คืนค่า) |
| 5 | indexOf() - หา Index แรกของค่า คืน -1 ถ้าไม่เจอ |
| 6 | join() - รวม Element เป็น String คั่นด้วย Separator |
| 7 | lastIndexOf() - หา Index สุดท้ายของค่า |
| 8 | map() - แปลงแต่ละ Element ให้เป็นค่าใหม่ คืน Array ใหม่ |
| 9 | pop() - ลบ Element ตัวสุดท้าย คืนค่าที่ลบ |
| 10 | push() - เพิ่ม Element ต่อท้าย คืน Length ใหม่ |
| 11 | reduce() - สะสมค่าจากซ้ายไปขวา คืนค่าเดียว |
| 12 | reduceRight() - สะสมค่าจากขวาไปซ้าย |
| 13 | reverse() - กลับลำดับ Element (Mutate) |
| 14 | shift() - ลบ Element ตัวแรก คืนค่าที่ลบ |
| 15 | slice() - ดึง Sub-array (ไม่ Mutate) |
| 16 | some() - เช็คว่ามี Element ไหนผ่านเงื่อนไขหรือไม่ |
| 17 | sort() - เรียงลำดับ (Mutate, Default: String Unicode) |
| 18 | splice() - ลบ/แทรก Element ที่ Index ใดๆ (Mutate) |
| 19 | toString() - แปลงเป็น String (คั่นด้วย Comma) |
| 20 | unshift() - เพิ่ม Element ที่หน้า คืน Length ใหม่ |
| 21 | includes() (ES7) - เช็คว่ามีค่านี้หรือไม่ |
| 22 | find()/findIndex() (ES6) - หา Element/Index แรกที่ผ่านเงื่อนไข |
| 23 | flat()/flatMap() (ES2019) - รatakan Nested Array |
| 24 | at() (ES2022) - เข้าถึง Index รองรับ Negative |
จัดกลุ่มตามลักษณะการทำงาน
- Mutate Original (เปลี่ยน Array ต้นฉบับ): push, pop, shift, unshift, splice, sort, reverse, fill, copyWithin
- Immutable (คืน Array ใหม่): concat, slice, map, filter, flat, flatMap
- Iteration (วนลูป): forEach, map, filter, reduce, some, every, find
- Search/Query: indexOf, lastIndexOf, includes, find, findIndex
- Transformation: join, toString, map, flatMap
Property สำคัญ
length- จำนวน Element (อ่าน/เขียนได้)
สรุป
Array Methods มีมากมาย จัดกลุ่มเป็น Mutate vs Immutable และ Iteration vs Query จะช่วยจำและเลือกใช้ได้ง่ายขึ้น ES6+ เพิ่มเมธอดทันสมัยมากมาย (find, includes, flat, at)