Một mảng kết hợp chỉ đơn giản là một tập hợp các cặp giá trị chính. Khi chúng ta định nghĩa một đối tượng, JavaScript sẽ tự động tạo một mảng cho đối tượng này. Điều này cho phép chúng tôi tham khảo các chỉ số dữ liệu bằng cách sử dụng chuỗi
đó là giống như màu sắc. màu đỏ
Mảng kết hợp như đối tượng
Ý tưởng chính là mọi đối tượng Javascript là một mảng kết hợp, đây là loại mảng chung nhất mà bạn có thể phát minh ra, đôi khi đây được gọi là cấu trúc băm hoặc bản đồ hoặc đối tượng từ điển
Một mảng kết hợp được khai báo hoặc tạo động. Chúng ta có thể tạo nó bằng cách gán một chữ cho một biến
Không giống như các mảng đơn giản, chúng tôi sử dụng dấu ngoặc nhọn thay vì dấu ngoặc vuông. Ngoài ra, nội dung được truy cập bằng các phím, bất kể phương thức nào được sử dụng để khai báo mảng
Một mảng kết hợp JavaScript được coi là một tập hợp các khóa. Các khóa này được liên kết với các giá trị tương ứng của chúng theo cách sao cho khi khóa được chuyển đến mảng kết hợp, nó sẽ trả về giá trị tương ứng. Mảng kết hợp trong JavaScript được coi là Đối tượng, không phải mảng bình thường; . Bài viết này đã giải thích các mảng kết hợp JavaScript
Trong blog này, chúng ta sẽ tìm hiểu mảng kết hợp là gì, nó khác với mảng bình thường như thế nào và cách tính độ dài của nó cũng như truy xuất tất cả các phần tử
Mục lục
- Một mảng kết hợp là gì?
- Cú pháp & ví dụ
- Độ dài của một mảng kết hợp
- Truy xuất các phần tử của một mảng kết hợp
- Nó khác với một mảng bình thường như thế nào?
Một mảng kết hợp là gì?
Mảng kết hợp về cơ bản là các đối tượng trong JavaScript nơi các chỉ mục được thay thế bằng các khóa do người dùng xác định. Chúng không có thuộc tính độ dài như một mảng bình thường và không thể duyệt qua bằng cách sử dụng vòng lặp for thông thường. Tham khảo thêm về vòng lặp qua một mảng kết hợp trong blog này
Cú pháp và ví dụ
var arr = {key1:'value1', key2:'value2'}
Ở đây, arr, là một mảng kết hợp với key1, key2 là các khóa hoặc chỉ mục chuỗi của nó và value1 & value 2 là các phần tử của nó
var arr = { "Company Name": ‘Flexiple’, "ID": 123};
Độ dài của một mảng kết hợp
Bây giờ chúng ta đã biết cách khai báo một mảng kết hợp, hãy xem cách chúng ta có thể tính độ dài của nó
Vì chúng ta sẽ không thể sử dụng thuộc tính độ dài của đối tượng Array nữa, trước tiên chúng ta hãy định nghĩa một phương thức trả về kích thước của mảng trước khi chúng ta sử dụng nó
Object.size = function[arr] {
var size = 0;
for [var key in arr] {
if [arr.hasOwnProperty[key]] size++;
}
return size;
};
Tham khảo bài viết này để biết thêm về hasownproperty
Bây giờ chúng ta đã định nghĩa phương thức kích thước, hãy sử dụng nó
var len = Object.size[x];
document.write["Length=" + len];
//Output: Length = 2
Sử dụng phương pháp phím
Phương thức keys trả về một mảng gồm tất cả các thuộc tính, vì vậy sử dụng phương thức này, chúng ta có thể áp dụng thuộc tính độ dài của Array
//Using the previous arr array
document.write["Length=" + Object.keys[arr].length
//Output: Length = 2
Truy xuất các phần tử
Để truy xuất tất cả các phần tử của một mảng kết hợp, không thể sử dụng một vòng lặp đơn giản như trong trường hợp của một mảng bình thường vì các phần tử không thể truy cập được bằng một chỉ số. Đây là cách chúng ta có thể làm thay thế
var arr = {
"Company Name": 'Flexiple',
"ID": 123
};
for [var key in arr] {
var value = arr[key];
document.write[key + " = " + value + '
'];
}
//Output:
Company Name = Flexiple
ID = 123
Sử dụng phương pháp phím
Chúng ta có thể chuyển đổi một mảng kết hợp, tức là một đối tượng, thành một mảng đơn giản. Với phương thức trả về danh sách khóa và phương thức bản đồ [ECMAScript 1. 6], chúng tôi cũng thu được các giá trị
Bạn có thể thấy ở phần trên bạn không thể khóa một mảng javascript với các giá trị ngẫu nhiên mà không có hàm tạo mảng đặt các khóa bị thiếu ở dạng null. Về cơ bản, điều này hợp lý nếu bạn xem xét cách các mảng được lưu trữ trong bộ nhớ, sẽ rất lộn xộn nếu bạn cố lưu trữ các khóa ngẫu nhiên. Vì vậy, trong một số trường hợp, tốt hơn hết bạn nên sử dụng một đối tượng javascript theo đúng nghĩa đen và gõ nó giống như cách bạn làm với mảng. Bằng cách này, bạn chỉ cần phân tích cú pháp các mục được lưu trữ chứ không phải các khóa bị thiếuJavaScript không có mảng kết hợp, chỉ có các đối tượng. Có hai dạng đối tượng, nghĩa đen và hàm tạo. Để truy cập và gán các thuộc tính, có hai dạng ký hiệu, ký hiệu dấu chấm và ký hiệu dấu ngoặc
var obj;
obj = {};
Ở trên là một đối tượng theo nghĩa đen. Chúng ta có thể mở rộng nó hơn nữa,
obj = {
name: "JavaScript",
version: "1.6"
}
Chúng ta có thể truy cập các thuộc tính như vậy,
________số 8Một hàm tạo đối tượng có thể trông như thế này
function Language[name, version]{
this.name = name;
this.version = version;
}
Chúng tôi sẽ mở rộng nguyên mẫu của Ngôn ngữ để bao gồm một phương thức cho phép chúng tôi kiểm tra tất cả các thuộc tính trong đối tượng thể hiện
var arr = { "Company Name": ‘Flexiple’, "ID": 123};
0Bây giờ chúng ta có thể gọi hàm tạo để quay một đối tượng mới sẽ kế thừa nguyên mẫu của hàm tạo
var arr = { "Company Name": ‘Flexiple’, "ID": 123};
1Chơi với cái này trong phòng thí nghiệm. Trình diễn trình tạo đối tượng
Tôi biết điều này không trả lời câu hỏi của bạn. Không có câu trả lời thực sự vì như tôi đã đề cập ở trên, không có mảng kết hợp nào trong JS. Tiếp tục đặt câu hỏi như thế này và bạn sẽ hiểu