Уже есть несколько простых примеров, но я заметил из того, как вы сформулировали свой вопрос, что вы, вероятно, пришли из фона PHP, и вы ожидаете, что JavaScript будет работать таким же образом - это не так. PHP array
сильно отличается от JavaScriptArray
.
В PHP ассоциативный массив может делать большую часть того, что может численно индексированный массив ( array_*
функции работают, вы можетеcount()
это и т. Д.). Вы просто создаете массив и начинаете присваивать строковые индексы вместо числовых.
В JavaScript все является объектом (кроме примитивов: строковых, числовых, логических), а массивы представляют собой определенную реализацию, которая позволяет иметь числовые индексы. Все , что толкнул в массив будет влияние на его 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));