Computer >> Máy Tính >  >> Lập trình >> Javascript

Hành vi khó xử của toán tử xóa trên các mảng trong JavaScript

Toán tử xóa trong JavaScript thực sự là một toán tử đối tượng (được sử dụng với các đối tượng).

Nhưng vì mảng cũng là các đối tượng được lập chỉ mục trong JavaScript, chúng ta cũng có thể sử dụng toán tử xóa với mảng.

Hãy xem xét mảng các ký tự sau -

const arr = ['a', 'b', 'c', 'd', 'e'];

Ví dụ

Bây giờ chúng ta hãy thực thi chương trình sau và đoán kết quả mong đợi -

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

Đầu ra

Đầu ra của chương trình này trong bảng điều khiển sẽ là -

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

Hiểu đầu ra -

Vì chúng tôi đã xóa một giá trị chỉ mục của mảng, chúng tôi mong đợi array.length sẽ xuất ra 4 thay vì 5. Nhưng toán tử xóa chỉ xóa giá trị khỏi vị trí bộ nhớ và vị trí vẫn bị chiếm bởi mảng.

Điều này không làm thay đổi độ dài của mảng và chúng ta vẫn thấy 5 phần tử trong mảng chỉ có một vị trí bộ nhớ đang trống.