Ассоциативные массивы

Основным отличием ассоциативных массивов от обычных является возможность обращения к элементу массива не по числовому индексу, а по ключу, представляющему собой строку. Ключи ассоциативных массив в JavaScript на самом деле являются свойствами объекта, поэтому для создания ассоциативного массива лучше использовать класс Object:

let arr = new Object();
arr['Один'] = 1;
arr['Два'] = 2;
arr['Три'] = 3;
console.log(arr['Один']); // 1
console.log(arr['Два']);  // 2
console.log(arr['Три']);  // 3

Ассоциативные массивы используются также для доступа к свойствам класса вместо классической точки. Для получения числа элементов массива ранее мы обращались к свойству length класса Array следующим образом:

let arr = [ 'Один', 'Два', 'Три' ];
console.log(arr.length); // 3

С помощью ассоциативных массивов обращение к свойству length будет выглядеть так:

let arr = [ 'Один', 'Два', 'Три' ];
console.log(arr['length']); // 3

Как вывести все элементы массива? Ни один из методов класса Array не позволяет вывести элементы ассоциативного массива. Кстати, свойство length также не работает. По этой причине перебрать все элементы массива с помощью стандартного цикла for не получится.

Для этой цели существует специальный цикл for...in. Он имеет следующий формат:

for (<Переменная> in <Экземпляр класса>) {
   <Тело цикла>
}

Цикл for...in на каждой итерации присваивает <Переменной> имя свойства (ключа), с помощью которого можно получить значение соответствующего элемента ассоциативного массива:

let arr = new Object();
arr['Один'] = 1;
arr['Два'] = 2;
arr['Три'] = 3;
for (let key in arr) {
   // Переменной key на каждой итерации присваивается
   // ключ текущего элемента ассоциативного массива
   console.log(`${key} => ${arr[key]}`);
}

В итоге мы получим следующий результат:

Один => 1
Два => 2
Три => 3

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов