Основы программирования на JavaScript | страница 25



и shift. Функция pop удаляет последний элемент из массива и возвращает его. Функция shift удаляет первый элемент из массива и возвращает его.


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

while(students.length>0){

alert(students.pop());

}


К сожалению, при этом массив был уничтожен: он теперь пуст. Иногда именно это и надо сделать. Если требуется просто очистить массив, то проще всего задать его длину (length) равной 0:


students.length = 0


Теперь массив пуст. Даже если снова задать длину массива больше 0, все данные в массиве уже будут уничтожены.

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


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

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

}


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

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

Лекция 6. Объектная модель документа