MyTetra Share
Делитесь знаниями!
JavaScript: перебор элементов в ассоциативном массиве
Время создания: 21.07.2012 09:32
Раздел: Компьютер - Программирование - Java Script
Запись: xintrea/mytetra_syncro/master/base/1342848732g2fuwzuktp/text.html на raw.github.com

Существуют также «ассоциативные массивы», в которых каждый элемент массива ассоциирован с именем:


var grades = [];

grades['Sam'] = 90;

grades['Joe'] = 85;

grades['Sue'] = 94;

grades['Beth'] = 82;


Ассоциативные массивы действуют немного иначе, чем индексные. Прежде всего, длина массива в этом примере будет равна 0. Как же узнать, какие элементы находятся в массиве? Единственный способ сделать это – использовать цикл “for - in”:


for(student in grades){

alert("Оценка " + student + "будет: " + grades[student]);

}


Синтаксис цикла for-in следующий: for(item in object){ }. Цикл пройдет через все элементы в объекте, и элемент будет именем элемента. В данном случае элементом является “Sam ", затем “ Joe ", “ Sue " и "Beth".


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


var students = ['Sam', 'Joe', 'Sue', 'Beth'];

students['Sam'] = 90;

students['Joe'] = 85;

students['Sue'] = 94;

students['Beth'] = 82;

alert('Всего имеется '+(students.length)+' студентов: '+students.join(', '));

for(var i=0; i<students.length; i++){

alert("Оценка " +students[i]+"будет: "+students[students[i]]);

}


Хотя это может показаться немного сложным, здесь нет ничего такого, о чем не говорилось в этой лекции.


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования