3 điều bạn chưa biết về mảng JavaScript
Mảng là một tính năng được sử dụng rộng rãi của các ngôn ngữ lập trình; họ đang biến đặc biệt có thể được sử dụng để lưu trữ nhiều giá trị cùng một lúc. Tuy nhiên, khi nói đến JavaScript, dễ như tìm hiểu, luôn có nhiều điều để khám phá.
Trong bài đăng này, chúng ta sẽ xem xét ba tính năng ít được biết đến nhưng quan trọng của mảng JavaScript mà bạn có thể chưa biết trước đây.
1. Thêm thuộc tính tùy chỉnh vào mảng
Nếu bạn tìm kiếm trên Internet để tìm một định nghĩa kỹ lưỡng về mảng JavaScript, bạn sẽ thấy rằng hầu hết mọi nguồn mà không bị lỗi sẽ liệt kê mảng như những gì nó có thật không Là, một đối tượng.
Trên thực tế, hầu hết mọi thứ chúng ta xử lý trong JavaScript sẽ hóa ra là một đối tượng. Có hai loại dữ liệu trong JavaScript, nguyên thủy và các đối tượng, nhưng nguyên thủy luôn được bọc bên trong các đối tượng.
Mảng, Hàm, Ngày, v.v. các đối tượng JavaScript được xác định trước có các phương thức, thuộc tính dựng sẵn và cú pháp chuẩn hóa của riêng chúng.
Mảng JavaScript có thể có ba loại tài sản khác nhau:
- Chỉ số của một mảng cũng là tài sản
- Thuộc tính tích hợp
- Thuộc tính tùy chỉnh bạn có thể tự thêm
Hai cái đầu tiên được biết đến nhiều hơn, bạn có thể sử dụng chúng mỗi ngày, nhưng hãy nhanh chóng nhìn thấy chúng trước khi tìm hiểu cách bạn có thể thêm thuộc tính tùy chỉnh của riêng mình vào một mảng.
Chỉ số là thuộc tính
Mảng JavaScript sử dụng cú pháp dấu ngoặc vuông, nhu la var ary = ["cam", "táo", "vải thiều"];
.
Các chỉ số của các phần tử mảng về cơ bản là tính chất nơi tên tài sản là số nguyên luôn không âm.
Các cặp chỉ số của một mảng tương tự như cặp khóa-giá trị của một đối tượng.
Các chỉ mục là một tính năng độc đáo của đối tượng Array và không giống như các thuộc tính tích hợp khác của nó, chúng có thể là thiết lập với cú pháp ngoặc đơn, nhu la ary [3] = "đào";
.
Thuộc tính tích hợp
Mảng cũng có tính chất tích hợp, nhu la mảng.length
. Các chiều dài
thuộc tính mang một giá trị nguyên biểu thị độ dài của một mảng.
Nói chung, các thuộc tính tích hợp có thể được tìm thấy thường xuyên trong các đối tượng JavaScript được xác định trước như mảng. Cùng với các phương thức tích hợp, chúng giúp tùy chỉnh các đối tượng chung để các đối tượng phù hợp với các nhu cầu khác nhau.
Các thuộc tính tích hợp có thể được truy cập bằng object.key
hoặc là đối tượng ["khóa"]
cú pháp. Vì vậy, bạn cũng có thể viết ary ["chiều dài"]
để truy cập vào chiều dài của một mảng.
Tạo thuộc tính tùy chỉnh cho đối tượng mảng
Bây giờ, hãy nói về thêm thuộc tính của riêng bạn vào mảng. Mảng là các đối tượng được xác định trước lưu trữ các loại giá trị khác nhau ở các chỉ số khác nhau.
Thường không cần nhiều thuộc tính tùy chỉnh vào một mảng; đây là một trong những lý do người mới bắt đầu thường không được dạy về tính năng này. Trong thực tế, nếu bạn muốn coi một mảng như một đối tượng bình thường bằng cách thêm các cặp khóa-giá trị vào nó, bạn cũng có thể sử dụng một đối tượng bình thường cho mục đích của bạn. Nhưng, điều này không có nghĩa là không có trường hợp đặc biệt nơi bạn có thể sử dụng thực tế là một mảng là một đối tượng, bằng cách thêm một hoặc nhiều thuộc tính tùy chỉnh vào nó.
Ví dụ: bạn có thể thêm thuộc tính tùy chỉnh vào một mảng xác định "loại" hoặc "lớp" của các yếu tố của nó, như bạn có thể thấy nó trong ví dụ dưới đây.
var ary = ["cam", "táo", "vải thiều"]; ary.itemClass = "trái cây"; console.log (ary + "là" + ary.itemClass); // "cam, táo, vải thiều là trái cây"
Lưu ý rằng thuộc tính tùy chỉnh bạn thêm vào một mảng là vô số, có nghĩa là nó sẽ được chọn bởi các vòng lặp như tại
tuyên bố.
2. Lặp qua các phần tử mảng
Bạn có thể nói "Tôi biết điều đó rồi", điều đó rất có thể đúng, bạn đã biết cách đi qua các phần tử mảng. Nhưng cũng đúng khi nói "vòng lặp thông qua các phần tử mảng" là một chút trừu tượng, vì những gì chúng ta thực sự lặp qua là chỉ số của mảng.
Vì các chỉ số mảng chỉ được tạo thành từ số nguyên không âm, chúng tôi lặp lại một giá trị số nguyên thường bắt đầu từ 0 và kết thúc ở toàn bộ chiều dài của mảng, sau đó sử dụng giá trị lặp đó để truy cập vào phần tử mảng tại một chỉ mục đã cho.
Tuy nhiên, kể từ ECMAScript6, có một cách để vòng lặp trực tiếp thông qua các giá trị mảng mà không cần bận tâm đến các chỉ số, và điều đó có thể được thực hiện bằng cách sử dụng cho người của
vòng lặp.
Trong một mảng, cho người của
vòng lặp sẽ lặp qua các phần tử mảng theo thứ tự các chỉ số, nói cách khác, nó sẽ đảm nhiệm việc lặp lại các chỉ số và nhận được một giá trị mảng hiện có tại một chỉ số nhất định. Vòng lặp này là lý tưởng nếu bạn chỉ muốn lặp qua tất cả các phần tử mảng và làm việc với chúng.
var ary = ["cam", "táo", "vải thiều"]; for (let item of ary) console.log (item); // "cam", "táo", "vải thiều"
Để so sánh, với thường xuyên cho
vòng lặp, chúng ta nhận được các chỉ số thay vì các giá trị như đầu ra.
var ary = ["cam", "táo", "vải thiều"]; cho (var item = 0; mục < ary.length; item++) console.log(item); // 0, 1, 2
3. Số lượng phần tử không phải là chiều dài của nó
Thông thường, khi chúng ta nói về chiều dài của một mảng, chúng tôi nghĩ rằng đó là số lượng giá trị của một mảng hoặc độ dài chúng tôi đã cung cấp cho mảng theo cách thủ công. Tuy nhiên, trong thực tế, độ dài của một mảng phụ thuộc vào chỉ số lớn nhất hiện có bên trong nó.
Chiều dài là một tài sản rất linh hoạt. Cho dù bạn đã cố định độ dài của mảng trước hay chưa, nếu bạn tiếp tục thêm giá trị vào mảng, độ dài của mảng tiếp tục tăng theo.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6
Trong ví dụ trên, bạn có thể thấy rằng tôi chỉ cung cấp cho mảng một giá trị ở chỉ số 5 và độ dài trở thành 6. Bây giờ, nếu bạn nghĩ rằng bằng cách thêm một giá trị tại chỉ mục 5, mảng sẽ tự động tạo các chỉ số từ 0 đến 4 , sau đó giả định của bạn không đúng. Có thực sự không có chỉ số hiện có từ 0 đến 4 trong mảng đó. Bạn có thể kiểm tra điều này bằng cách sử dụng trong
nhà điều hành.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 trong ary); // sai
Mảng ary
là những gì chúng ta gọi là mảng "thưa thớt", một mảng trong đó các chỉ số không được tạo ra liên tục, và có những khoảng trống. Đối diện của một mảng "thưa thớt" là mảng "dày đặc" trong đó các chỉ mục tồn tại liên tục trong mảng và số lượng phần tử giống như chiều dài
.
Các chiều dài
tài sản cũng có khả năng cắt một mảng, đảm bảo chỉ số cao nhất có trong mảng luôn luôn ít hơn chính nó, như chiều dài
theo mặc định luôn luôn lớn hơn chỉ số cao nhất.
Trong ví dụ dưới đây, bạn có thể thấy chúng tôi mất phần tử ở chỉ số 5 bằng cách giảm chiều dài
của ary
mảng.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary [5]); // chưa xác định
Đọc thêm
- 10 thuật ngữ JavaScript bạn nên biết bây giờ
- 4 câu lệnh Javascript không phổ biến nhưng hữu ích bạn nên biết
- Tối ưu hóa mã với JS Hint - một công cụ để xử lý Javascript