Оглавление

Ассоциативные массивы. Перебор ассоциативных массивов

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

  var Mass = new Array();
  Mass["Один"] = 1;
  Mass["Два"] = 2;
  Mass["Три"] = 3;
  document.write(Mass["Один"]); // 1

Как вывести все элементы массива? Ни один из методов класса Array не позволяет вывести элементы ассоциативного массива. Кстати, свойство length также не работает. По этой причине перебрать все элементы массива с помощью стандартного цикла for не получится.
Для этой цели существует специальный цикл for...in. Он имеет следующий формат:
   for (<Переменкая> in <Экземпляр класса>) {
   <Тело цикла>
   }

 

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

  var Mass = new Array();
  Mass["Один"] = 1;
  Mass["Два"] = 2;
  Mass["Три"] = 3;
  for (var Name in Mass) {
     // Переменной Name на каждой итерации присваивается
     // строка-индекс ассоциативного массива
     document.write(Name + " = " + Mass[Name]  + "<br>");
  }

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

Один  =   1

Два  =  2

Три  =   3

 

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

var Str = "Hello, world ";
document.write(Str.length); // 13

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

var Str = "Hello, world ";
document.write(Str["length"]); // 13
  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити