Наведено вже декілька простих прикладів, але я помічаю, як ви сформулювали своє запитання про те, що ви, ймовірно, походите з фонового режиму PHP, і ви очікуєте, що JavaScript працює так само - це не так. PHP array
дуже відрізняється від JavaScript Array
.
У PHP асоціативний масив може зробити більшу частину того, що може бути масив з індексованим числом ( array_*
функції працюють, ви можете count()
це і т. Д.) Ви просто створите масив і почнете присвоювати рядкові індекси замість числових.
У JavaScript все є об'єктом (крім примітивів: string, numeric, boolean), а масиви - це певна реалізація, яка дозволяє мати числові індекси. Все , що штовхнув в масив буде вплив на його length
, і може повторюватися по порівнянні з використанням методів Array ( map
, forEach
, reduce
, filter
, find
і т.д.) Однак, оскільки все є об'єктом, ви завжди вільні просто привласнити властивості, тому що це те , що ви робите , щоб будь-який об’єкт. Позначення з квадратними дужками - це просто ще один спосіб отримати доступ до ресурсу, тому у вашому випадку:
array['Main'] = 'Main Page';
насправді еквівалентно:
array.Main = 'Main Page';
З вашого опису, я здогадуюсь, що ви хочете "асоціативний масив", але для JavaScript це простий випадок використання об'єкта як хешмапу. Крім того, я знаю, що це приклад, але уникайте несуттєвих імен, які описують лише тип змінної (наприклад array
), а також ім'я на основі того, що воно повинно містити (наприклад pages
). Прості об’єкти не мають багато хороших прямих способів ітерації, тому часто ми перетворюємося потім на масиви спочатку за допомогою Object
методів ( Object.keys
у даному випадку - є також entries
і values
додаються до деяких браузерів зараз), які ми можемо циклічно зафіксувати.
// 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));