Độ dài mảng Javascript
Mọi mảng có một đặc tính length, và nó là đặc tính này cái làm các mảng khác so với các JavaScript objects thông
thường. Cho các mảng cái là đậm đặc (i.e, không thưa thớt) đặc tính length chỉ ra số các phần tử trong mảng. Giá
trị của nó là một cái nhiều hơn chỉ mục cao nhất trong mảng:
[].length // => 0: the array has no elements
[“a”,”b”,”c”].length // => 3: highest index is 2, length is 3
Khi một mảng là thưa thớt, đặc tính length là lớn hơn số các phần tử, và tất cả cái chúng ta có thể nói về nó là
rằng length được đảm bảo là lớn hơn chỉ mục của mỗi phần tử trong mảng. Hay, đặt trong cách thức khác, một mảng
(thưa thớt hay không) sẽ không bao giờ có một phần tử chỉ mục của nó là lớn hơn hay bằng với độ dài của nó. Để
duy trì không đổi này, các mảng có 2 hành vi đặc biệt. Cái đầu tiên chúng ta mô tả ở trên: nếu bạn gán một giá trị
vào một phần tử mảng chỉ mục i của nó là lớn hơn hay bằng với length hiện tại của mảng, giá trị của đặc tính length
được thiết lập thành i+1.
Hành vi đặc biệt thứ hai rằng các mảng thực thi để duy trì không đổi của length là rằng, nếu bạn thiết lập đặc tính
length thành một số nguyên không âm n nhỏ hơn giá trị hiện tại của nó, bất cứ phần tử mảng nào chỉ mục của chúng là
lớn hơn hay bằng n bị xóa khỏi mảng:
a = [1,2,3,4,5]; // Start with a 5-element array.
a.length = 3; // a is now [1,2,3].
a.length = 0; // Delete all elements. a is [].
a.length = 5; // Length is 5, but no elements, like new Array(5)
Bạn cũng có thể thiết lập đặc tính length của một mảng thành một giá trị lớn hơn giá trị hiện tại của nó. Làm cái
này không thực sự thêm bất cứ phần tử mới nào vào mảng; nó đơn giản tạo một vùng thưa thớt tại cuối mảng.
