เมธอด push() - วิธีมาตรฐาน
Array.push() เพิ่ม Element หนึ่งหรือหลายตัวที่ ท้าย Array คืนค่า Length ใหม่ Mutate Original
ตัวอย่างโค้ด
<html>
<body>
<script>
var arr = ["marketing", "technical", "finance", "sales"];
arr.push("HR");
document.write(arr);
</script>
</body>
</html>
ผลลัพธ์
marketing,technical,finance,sales,HR
รายละเอียด
- เพิ่มที่ Index = Length (ท้าย Array)
- เพิ่มหลาย Item พร้อมกันได้:
arr.push('a', 'b', 'c') - คืนค่า Length ใหม่ (Number)
- Mutate Original Array
วิธีอื่นๆ
1. การกำหนด Index โดยตรง (ไม่แนะนำสำหรับ Append)
arr[arr.length] = "HR"; // ทำงานได้แต่ Verbose
2. Spread Operator (Immutable - ES6+)
const newArr = [...arr, "HR"]; // Array ใหม่
3. concat() (Immutable)
const newArr = arr.concat(["HR"]);
4. splice() (Mutate - Insert ที่ตำแหน่งใดๆ)
arr.splice(arr.length, 0, "HR"); // เทียบเท่า push
ตารางเปรียบเทียบ
| วิธี | Mutate? | คืนค่า | Performance |
|---|---|---|---|
push() | ใช่ | New Length | O(1) Amortized - เร็วที่สุด |
arr[length] = x | ใช่ | Value | O(1) |
[...arr, x] | ไม่ | New Array | O(n) |
concat([x]) | ไม่ | New Array | O(n) |
ข้อควรระวัง
push()เร็วที่สุดสำหรับการ Append ท้าย Array- คืนค่า Length ไม่ใช่ Array:
const newArr = arr.push(x)ผิด! จะได้ Number - ใช้กับ Array-like Objects ได้:
Array.prototype.push.call(obj, val)
สรุป
push() เป็นวิธีมาตรฐานและเร็วที่สุดในการ Append Item เข้า Array Mutate ต้นฉบับ คืนค่า Length สำหรับ Immutable Pattern ใช้ Spread Operator [...arr, newItem]