Коллекции: объект Enumerator
Объект Enumerator используется для просмотра элементов коллекций. Коллекции - это списки объектов, реализованные в исполняющей системе JScript, но непосредственно не доступные пользователю. В частности, мы не можем добраться до их элементов ни с помощью индексов, ни с помощью оператора for:in. Вместо этого мы должны создать для коллекции объект Enumerator, а затем последовательно перемещать его указатель от текущего элемента коллекции к следующему. Объект создается конструктором
new Enumerator(коллекция)
где коллекция - любой объект, являющийся коллекцией. При создании объекта его указатель устанавливается на первый элемент коллекции.
Следующий сценарий позаимствован из документации к JScript и демонстрирует использование данного объекта:
function showDrives() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var e = new Enumerator(fso.Drives); var s = ""; var name; for (e.moveFirst(); !e.atEnd(); e.moveNext()) { // просмотр всех дисков компьютера var x = e.item(); if (x.DriveType == 3) // сетевой диск? name = x.ShareName; else if (x.IsReady) name = x.VolumeName; else name = "[Диск не готов]"; s += x.DriveLetter + ": " + name + " "; } return(s); }
document.write(showDrives());
Объект Enumerator не имеет свойств; его методы описаны ниже.
Методы объекта EnumeratorМетод | Описание |
---|
atEnd | Проверяет, достигнут ли конец коллекции. | item | Возвращает текущий элемент коллекции. | moveFirst | Делает текущим первый элемент коллекции. | moveNext | Делает текущим следующий элемент коллекции. |
Метод atEnd
Синтаксис: | объект.atEnd() | Результат: | логическое значение |
Метод atEnd возвращает true, если текущий элемент коллекции является последним в ней, и false в противном случае. См. приведенный выше пример.
Метод item
Синтаксис: | объект.item | Результат: | объект |
Метод item возвращает текущий элемент коллекции. Если коллекция пуста или текущий элемент не определен, то возвращается значение undefined. См. приведенный выше пример.
Метод moveFirst
Синтаксис: | объект.moveFirst() |
Метод moveFirst перемещает указатель на первый элемент коллекции. См. приведенный выше пример.
Метод moveNext
Синтаксис: | объект.moveNext() |
Метод moveNext перемещает указатель на следующий элемент коллекции. См. приведенный выше пример.
1 2 3 4
8 8 8
| |