Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เพิ่มสมาชิกในตำแหน่งที่กำหนดของอาร์เรย์ JavaScript


บางครั้งต้องการเพิ่มสมาชิกในตำแหน่งที่กำหนดของอาร์เรย์ 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']

อาร์กิวเมนต์แรกคือดัชนีที่ต้องการลบหรือแทรก อาร์กิวเมนต์ที่สองคือจำนวนสมาชิกที่ต้องการลบ และอาร์กิวเมนต์ที่สามเป็นต้นไปคือค่าที่ต้องการแทรก