บางครั้งต้องการเพิ่มสมาชิกในตำแหน่งที่กำหนดของอาร์เรย์ JavaScript ไม่รองรับโดยตรง จึงต้องสร้างฟังก์ชันเอง สามารถเพิ่มเข้าไปใน Array prototype เพื่อใช้งานโดยตรงบนอ็อบเจกต์
ตัวอย่าง: ฟังก์ชัน insert แบบกำหนดเอง
Array.prototype.insert = function(data, position) {
if (position >= this.length) {
this.push(data); // ใส่ท้ายถ้าตำแหน่งมากกว่าความยาว
} else if (position <= 0) {
this.unshift(data); // ใส่หน้าถ้าตำแหน่งน้อยกว่าหรือเท่ากับ 0
} else {
// ขยับสมาชิกไปทางขวา
for (let i = this.length; i >= position; i--) {
this[i] = this[i - 1];
}
this[position] = data;
}
}
let arr = [1, 2, 3, 4];
arr.insert(-1, 2);
console.log(arr);
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
[1, 2, -1, 3, 4]
ตอนนี้เมธอด insert พร้อมใช้งานบนอ็อบเจกต์อาร์เรย์ทุกตัวที่สร้างขึ้น
นอกจากนี้ยังสามารถใช้เมธอด splice เพื่อแทรกสมาชิกในตำแหน่งที่กำหนดได้ ตัวอย่างเช่น:
ตัวอย่าง: ใช้ splice แทรกสมาชิก
var months = ['Jan', 'March', 'April', 'June']; months.splice(1, 0, 'Feb'); console.log(months);
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
['Jan', 'Feb', 'March', 'April', 'June']
อาร์กิวเมนต์แรกคือดัชนีที่ต้องการลบหรือแทรก อาร์กิวเมนต์ที่สองคือจำนวนสมาชิกที่ต้องการลบ และอาร์กิวเมนต์ที่สามเป็นต้นไปคือค่าที่ต้องการแทรก