var arr = ['a', 'b', 'c'];
ในการลบ 'B' มีสองวิธี:
1. วิธีการลบ: ลบ arr [1]
ด้วยวิธีนี้ความยาวของอาร์เรย์ยังคงไม่เปลี่ยนแปลง ใช้
สำหรับ (ดัชนีใน arr) {document.write ('arr ['+index+'] ='+arr [ดัชนี]);}วิธีการสำรวจนี้ข้ามองค์ประกอบที่ไม่ได้กำหนดไว้ในนั้น
* วิธีนี้จะได้รับการสนับสนุนในอนาคต
2. อาร์เรย์อาร์เรย์วิธีการประกบกัน: arr.splice (1,1);
ด้วยวิธีนี้ความยาวของอาร์เรย์จะเปลี่ยนไปตามนั้น แต่ดัชนีอาร์เรย์ดั้งเดิมก็เปลี่ยนไปตามลำดับ
1 แรกในพารามิเตอร์ Splice คือดัชนีเริ่มต้นของการลบ (คำนวณจาก 0) ซึ่งเป็นองค์ประกอบที่สองของอาร์เรย์
1 ที่สองคือจำนวนองค์ประกอบที่ถูกลบและมีเพียงองค์ประกอบเดียวเท่านั้นที่ถูกลบที่นี่นั่นคือ 'B';
ในเวลานี้มีความเป็นไปได้ที่จะสำรวจองค์ประกอบอาร์เรย์ในลักษณะปกติเช่นเพราะองค์ประกอบที่ถูกลบจะไม่ถูกเก็บไว้ในอาร์เรย์
* วิธีนี้จะได้รับการสนับสนุนหลังจาก IE5.5 เท่านั้น
เป็นมูลค่าการกล่าวขวัญว่าในขณะที่การลบองค์ประกอบอาร์เรย์วิธีการประกบยังสามารถเพิ่มองค์ประกอบอาร์เรย์ได้
ตัวอย่างเช่น arr.splice (1,1, 'd', 'e'), d และ e ถูกเพิ่มลงใน arrray arr
อาร์เรย์ผลลัพธ์จะกลายเป็น arr: 'a', 'd', 'e', 'c'
JavaScript ตัดทอนอาร์เรย์โดยการตั้งค่าแอตทริบิวต์ความยาวของอาร์เรย์เป็นวิธีเดียวที่จะลดความยาวของอาร์เรย์ ไม่เปลี่ยนสองครั้ง
/ * * วิธีการ: array.remove (dx) * ฟังก์ชั่น: ลบองค์ประกอบอาร์เรย์ .prototype.remove = function (dx) {ถ้า (isnan (dx) || dx> this.length) {return false;} สำหรับ (var i = 0, n = 0; i <this.length; i ++) {ถ้า (นี่ [i]! = นี้ [dx]) {this [n ++] = this [i]}} this.length- = 1} a = ['1', '2', '3', '4', '5']; +A. ความยาว); / * * วิธีการ: array.baoremove (DX) * ฟังก์ชั่น: ลบองค์ประกอบอาร์เรย์ array .prototype.baoremove = function (dx) {ถ้า (isnan (dx) || dx> this.length) {return false;} this.splice (dx, 1);} b = [1 ',' 2 ' , '3', '4', '5']; "องค์ประกอบ:"+b+"nlength:"+b.length);เรารู้ว่าใน IE5 หรือต่ำกว่าวัตถุอาร์เรย์ของ JavaScript ไม่ได้ให้วิธีนอกชั้นวางในการลบองค์ประกอบอาร์เรย์ ในรุ่น IE5.5+ แม้ว่าจะมีวิธีการประกบกัน แต่ก็ไม่ได้ลบรายการบางรายการ (หรือหลายรายการ) แต่จะล้างค่าของรายการบางรายการ (หรือหลายรายการ) ซึ่งหมายความว่ารายการยังคงอยู่ ความยาวของอาร์เรย์ไม่เปลี่ยนแปลง
ในความเป็นจริงเราสามารถเพิ่มวิธีการลบลงในอาร์เรย์ของเราเอง (โปรดทราบว่าสิ่งนี้หมายถึงการลบรายการของอาร์เรย์จากสมาชิกอาร์เรย์) บางทีคุณอาจคิดว่าจะใช้ลูปเพื่อกำหนดอาร์เรย์ใหม่ซึ่งก็โอเค แต่ก็ไม่มีประสิทธิภาพ
ด้านล่างเราแนะนำสองวิธีในการใช้ชิ้นและ concat เพื่อปรับแต่งการลบอาร์เรย์
รหัสเฉพาะมีดังนี้โปรดให้ความสนใจกับความคิดเห็นภายใน
array.prototype.del = function (n) {// n หมายถึงคำที่เริ่มต้นจาก 0 // Prototype เป็นต้นแบบวัตถุให้ความสนใจกับวิธีการเพิ่มวิธีการที่กำหนดเองให้กับวัตถุที่นี่ ถ้า (n <0) // ถ้า n <0 ไม่มีอะไรทำ ส่งคืนสิ่งนี้กลับมาอีกครั้ง นี่คืออาร์เรย์ใหม่ที่ประกอบด้วยสิ่งนี้ slice (0, n)/this.slice (n+1, this.length) วิธีการชิ้น: ส่งคืนเซ็กเมนต์ของอาร์เรย์ที่มีพารามิเตอร์สองตัวระบุตำแหน่งเริ่มต้นและสิ้นสุดตามลำดับ */} // ลองใช้วิธีนี้เพื่อเพิ่มตัวเอง VAR Test = อาร์เรย์ใหม่ (0,1,2,3,4,5); ของรายการ 4. การแจ้งเตือน (ทดสอบ);ด้วยวิธีนี้เราใช้วิธีการสองวิธีของวัตถุอาร์เรย์อย่างยืดหยุ่นเท่านั้นเพื่อให้บรรลุความต้องการของเรา