Các mảng kết hợp JavaScript được coi là Đối tượng JavaScript. Các thuộc tính và phương thức của đối tượng có thể được gán tùy ý
Mảng kết hợp JavaScript tạo ra có vẻ giống như một mảng bình thường?
Hãy xem các ví dụ sau thể hiện thuộc tính độ dài mảng không được định nghĩa giống như một mảng số
var normalArray= new Array[];
normalArray[0] = ".com";
normalArray[1] = ".net";
normalArray[2] = ".org";
normalArray[3] = ".gov";
document.writeln["Length: " + normalArray.length]; // Outputs 4, array length
var associativeArray = new Array[];
associativeArray['commercial'] = ".com";
associativeArray['network'] = ".net";
associativeArray['organization'] = ".org";
associativeArray['government'] = ".gov";
document.writeln["Length: " + associativeArray.length]; // Outputs 0, array length
chạy nó. »
Tuy nhiên, chúng ta có thể truy cập các giá trị thông qua dấu ngoặc và. [dấu chấm] ký hiệu thuộc tính
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
chạy nó. »
Các ví dụ trên thể hiện rõ ràng rằng bạn không thể tạo các mảng kết hợp trong JavaScript giống như một mảng bình thường. Cách duy nhất bạn có thể tạo bằng JavaScript Object
Mảng kết hợp JavaScript
Tạo đối tượng
Một đối tượng trống, chúng ta cũng có thể nói mảng kết hợp trống được tạo theo hai cú pháp khác nhau,
var myObj = new Object[];
var myObj = { } // both are same
Bạn có thể lưu trữ dữ liệu theo cặp khóa và giá trị. Chúng ta có thể sử dụng ký hiệu thuộc tính dấu chấm để gán, truy cập và xóa các giá trị đối tượng
Bạn có thể sử dụng dấu ngoặc vuông hoặc ký hiệu dấu chấm
var myObj = {}; // indicates an Object is created
myObj.commercial = ".com";
myObj.network= ".net";
myObj.organization= ".org";
myObj.government= ".gov";
document.writeln[myObj.length]; // results still undefined
document.writeln["commercial domain: " + myObj['commercial']]; // Outputs .com
document.writeln["commercial domain: " + myObj.commercial]; // Outputs .com
chạy nó. »
Đang xóa đối tượng
câu lệnh xóa thích hợp hơn để xóa thuộc tính,
delete myObj.commercial; // delete value by 'commercial' key
chạy nó. »
Độ dài khóa đối tượng
Chúng tôi đang làm việc với đối tượng, chúng tôi có thể lấy độ dài khóa của đối tượng
Chúng ta phải sử dụng phương pháp
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
7. phương thức này trả về các phím. Với chúng ta nên sử dụng thuộc tính document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
8 để lấy độ dài của khóa đối tượngObject.keys[myObject]; // ["commercial", "network", "organization", "government"]
Object.keys[myObject].length // return 4
chạy nó. »
Trong JavaScript, các đối tượng [về cơ bản là các mảng kết hợp] được tạo để ánh xạ giữa các cặp khóa và giá trị. Các khóa mảng [dưới dạng chỉ mục] để truy cập các giá trị mảng
var users = [
{"Name":"Opal Kole", "Address":"63 street Ct."},
{"Name":"Max Miller", "Address":"41 NEW ROAD."},
{"Name":"Beccaa Moss", "Address": "2500 green city."},
{"Name":"Paul Singh", "Address": "1343 Prospect St"}
];
document.writeln[ users[0] ]; // index 0 [object record], object return
document.writeln[ users[0]["Name"] ]; // index 0, return Name key
chạy nó. »
JavaScript không hỗ trợ mảng đa chiều. Nhưng bạn có thể lưu trữ mảng đa chiều được biểu diễn bằng mảng của mảng
Mảng kết hợp là đối tượng động mà người dùng xác định lại khi cần. Khi bạn gán giá trị cho khóa trong một biến kiểu Mảng, mảng được chuyển đổi thành đối tượng và nó mất các thuộc tính và phương thức của Mảng. Thuộc tính độ dài không có tác dụng vì biến không còn thuộc kiểu Array
Chúng tôi sẽ chứng minh tất cả những điều đó và cũng chỉ ra cách thêm một phương thức khóa vào một đối tượng để có số mục mà nó nắm giữ khi nó trở thành một mảng kết hợp
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
var arr = { "one": 1, "two": 2, "three": 3 };
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
Điều này đã ngầm tạo ra một biến kiểu Object
Nội dung được truy cập bằng các phím, bất kể phương thức được sử dụng để khai báo mảng là gì
Một mảng kết hợp cũng là một đối tượng
Vì vậy, chúng ta có thể tạo một mảng kết hợp với từ dành riêng cho Đối tượng, sau đó gán các khóa và giá trị
var o = new Object[];
o["one"] = 1;
o["two"] = 2;
o["three"] = 3;
for[var i in o]
{
document.write[i + "=" + o[i] + '
'];
}
Các thuộc tính của một đối tượng JavaScript cũng là các khóa
Điều cụ thể đối với các đối tượng trong JavaScript là các thuộc tính cũng là các khóa như chúng ta sẽ thấy trong phần minh họa.
Như vậy, cùng một mảng có thể được tạo đơn giản hơn.
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
0Nhưng chúng ta phải sử dụng dạng chỉ mục nếu chúng ta sử dụng một biến làm khóa
Nhớ lại rằng thuộc tính độ dài không có giá trị
Một mảng kết hợp được quét với for in
Chúng ta không thể sử dụng vòng lặp for đơn giản vì chỉ mục không thể truy cập các phần tử [ngoài ra chúng ta phải sử dụng một hàm đặc biệt để xác định vị trí của phần tử cuối cùng], nhưng vòng lặp for càng đơn giản càng lý tưởng
Các khóa được gán cho biến "khóa" và với khóa, chúng tôi truy cập giá trị
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
1Số hạng mục
Vì chúng ta không còn thuộc tính độ dài của đối tượng Mảng, nên vẫn cần thêm một phương thức vào Đối tượng để trả về kích thước của danh sách
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
2Điều này cũng cho số lượng mặt hàng
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
3Danh sách tài sản
Kể từ ngày 1. 8. 5 của ECMAScript, chúng ta có thể lấy danh sách các thuộc tính của một đối tượng trong một câu lệnh
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
4Từ đó, để lấy số key thật đơn giản
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
5Phương thức keys trả về một mảng gồm tất cả các thuộc tính, vì vậy keys và chúng ta có thể áp dụng thuộc tính độ dài của Array
document.writeln["commercial domain: " + associativeArray['commercial']];
document.writeln["commercial domain: " + associativeArray.commercial];
6Danh sách các giá trị
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ị