วิธี splice
วิธี splice ลบหรือเพิ่ม
องค์ประกอบในอาร์เรย์ สามารถลบองค์ประกอบเพียงอย่างเดียว,
เพิ่มองค์ประกอบเพียงอย่างเดียว หรือทำทั้งสองอย่าง
พร้อมกันก็ได้ วิธีนี้มีความสามารถหลากหลายและ
ค่อนข้างซับซ้อนสำหรับความเข้าใจ
วิธีนี้เปลี่ยนแปลงอาร์เรย์ต้นทางและส่งคืน
อาร์เรย์ขององค์ประกอบที่ถูกลบ
พารามิเตอร์แรกของวิธี รับหมายเลของค์ประกอบ
ของอาร์เรย์ที่ต้องการลบ พารามิเตอร์ที่สอง
- จำนวนองค์ประกอบของอาร์เรย์ที่ควรจะลบ
หากตั้งค่าเป็น 0 - องค์ประกอบจะไม่ถูกลบ
(จะเพิ่มเฉพาะองค์ประกอบใหม่เท่านั้น)
ถัดไปคั่นด้วยเครื่องหมายจุลภาค คือองค์ประกอบที่
ต้องการเพิ่มเข้าไปในอาร์เรย์ (เป็นพารามิเตอร์ที่ไม่บังคับ)
องค์ประกอบเหล่านี้จะถูกเพิ่มเข้าไปแทนที่
องค์ประกอบที่ถูกลบจากอาร์เรย์
หากไม่มีการลบ (เมื่อพารามิเตอร์ที่สองเป็น
0) - องค์ประกอบจะถูกแทรกเข้าไปในอาร์เรย์โดยเริ่ม
จากตำแหน่งที่ระบุโดยพารามิเตอร์แรกของวิธี
พารามิเตอร์แรกสามารถมีค่าติดลบได้
ในกรณีนี้การนับตำแหน่งจะไม่เริ่ม
จากต้นอาร์เรย์ แต่เริ่มจากท้ายอาร์เรย์ องค์ประกอบสุดท้าย
ในกรณีนี้จะมีหมายเลข -1
ไวยากรณ์
อาร์เรย์.splice(ตำแหน่งที่จะลบ, จำนวนที่จะลบ, [แทรก], [แทรก]...);
ตัวอย่าง
มาลบสามองค์ประกอบ, เริ่มจากองค์ประกอบที่หนึ่ง:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(1, 3);
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
['a', 'e']
ตัวอย่าง
มาส่งออกอาร์เรย์ขององค์ประกอบที่ถูกลบ:
let arr = ['a', 'b', 'c', 'd', 'e'];
let del = arr.splice(1, 3);
console.log(del);
ผลลัพธ์จากการทำงานของโค้ด:
['b', 'c', 'd']
ตัวอย่าง
มาลบองค์ประกอบหมายเลข
2 ก่อน จากนั้นแทนที่องค์ประกอบนั้นด้วย
องค์ประกอบใหม่อีกสามองค์ประกอบ:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1, '1', '2', '3');
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
['a', 'b', '1', '2', '3', 'd', 'e']
ตัวอย่าง
มาทำการไม่ลบอะไรเลย แต่
ที่ตำแหน่ง 2, แทรกองค์ประกอบใหม่
อีกสามองค์ประกอบ:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 0, '1', '2', '3');
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
['a', 'b', '1', '2', '3', 'c', 'd', 'e']
ตัวอย่าง . ค่าติดลบ
มาลบองค์ประกอบรองสุดท้าย:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(-2, 1);
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
['a', 'b', 'c', 'e']