Đã có một số ví dụ đơn giản, nhưng tôi nhận thấy từ cách bạn đặt câu hỏi cho bạn rằng bạn có thể đến từ nền tảng PHP và bạn đang mong đợi JavaScript hoạt động theo cách tương tự - không. Một PHP array
rất khác với JavaScript Array
.
Trong PHP, một mảng kết hợp có thể thực hiện hầu hết những gì một mảng được lập chỉ mục số có thể (các array_*
hàm hoạt động, bạn có thể count()
, v.v.) Bạn chỉ cần tạo một mảng và bắt đầu gán cho các chỉ mục chuỗi thay vì số.
Trong JavaScript, mọi thứ đều là một đối tượng (ngoại trừ các nguyên hàm: chuỗi, số, boolean) và mảng là một triển khai nhất định cho phép bạn có các chỉ mục số. Bất cứ điều gì đẩy lên một mảng sẽ ảnh hưởng đến mình length
, và có thể được lặp qua sử dụng phương pháp Array ( map
, forEach
,reduce
, filter
, find
, vv) Tuy nhiên, bởi vì tất cả mọi thứ là một đối tượng, bạn sẽ luôn tự do chỉ đơn giản là tính assign, bởi vì đó là một cái gì đó bạn làm gì để bất kỳ đối tượng. Ký hiệu dấu ngoặc vuông đơn giản là một cách khác để truy cập vào một thuộc tính, vì vậy trong trường hợp của bạn:
array['Main'] = 'Main Page';
thực sự tương đương với:
array.Main = 'Main Page';
Từ mô tả của bạn, tôi đoán là bạn muốn có một 'mảng kết hợp', nhưng đối với JavaScript, đây là một trường hợp đơn giản sử dụng một đối tượng làm hashmap. Ngoài ra, tôi biết đó là một ví dụ, nhưng tránh các tên không có ý nghĩa chỉ mô tả loại biến (ví dụ array
) và tên dựa trên những gì nó nên chứa (ví dụ pages
). Các đối tượng đơn giản không có nhiều cách trực tiếp tốt để lặp lại, vì vậy thường chúng ta sẽ chuyển thành mảng trước bằng cách sử dụng Object
các phương thức ( Object.keys
trong trường hợp này - cũng có entries
và values
được thêm vào một số trình duyệt ngay bây giờ) mà chúng ta có thể lặp.
// assigning values to corresponding keys
const pages = {
Main: 'Main page',
Guide: 'Guide page',
Articles: 'Articles page',
Forum: 'Forum board',
};
Object.keys(pages).forEach((page) => console.log(page));