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

พฤติกรรมแปลกของ delete operator กับอาร์เรย์ใน JavaScript

ตัวดำเนินการ delete ใน JavaScript เป็นตัวดำเนินการสำหรับออบเจกต์ แต่เนื่องจากอาร์เรย์ก็เป็นออบเจกต์แบบมีดัชนี จึงใช้ delete กับอาร์เรย์ได้

ตัวอย่าง: const arr = ['a','b','c','d','e']; delete arr[4];

ผลลัพธ์: อาร์เรย์ยังคงมี length = 5 แต่ index 4 กลายเป็น (ช่องว่าง)

ตัวอย่างโค้ด

const arr = ['a', 'b', 'c', 'd', 'e'];
delete arr[4];
console.log(arr);
console.log(arr.length);

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

[ 'a', 'b', 'c', 'd', <1 empty item> ] 5

คำอธิบาย: delete ลบค่าออกจากหน่วยความจำ แต่ช่องดัชนียังคงอยู่ ทำให้ length ไม่เปลี่ยน และอาร์เรย์มี "ช่องว่าง" (sparse array)