Опубликован: 19.10.2006 | Уровень: для всех | Доступ: свободно
Лекция 5:

Строки, числа и массивы

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >

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

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]]);
}

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

Теперь читатель должен достаточно хорошо понимать основные типы данных JavaScript: строки, числа и массивы. В "следующей лекции" будет рассмотрена Объектная модель документа, или DOM (Document Object Model).

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >
Елена Сапегова
Елена Сапегова
Есть ли практическая часть у курса повышения квалификации «web-дизайн»?
Рустам Рахимов
Рустам Рахимов
Лекция 3 ужасно написано.
Игорь Ким
Игорь Ким
Россия, Волжский Мира 27-107