Объект Enumerator

Объект Enumerator

С помощью объекта Enumerator можно получить доступ к любому элементу коллекции (в VBScript для этого служит цикл For…Each). Коллекцией в языке JScript называется множество элементов, которое отличается от массива тем, что к элементам коллекции нельзя получить прямой доступ с помощью индексов — можно только перемешать указатель текущего элемента на самый первый или следующий относительно текущего элемент.

Для создания нового объекта встроенного класса Enumerator используется конструктор следующего вида:

var е;

е = new Enumerator(collection);

Здесь параметр collection указывает на коллекцию, для доступа к элементам которой и создается объект класса Enumerator. Сами коллекции обычно являются свойствами других объектов.

Методы объекта Enumerator представлены в табл. П1.16 (свойств у этого объекта нет).

Таблица П1.16. Методы объекта Enumerator

Метод Описание  atEnd()  Возвращает true, если указатель текущего элемента находится на элементе, следующем за последним экземпляром коллекции, либо коллекция пуста, либо текущий элемент не определен. В противном случае возвращается false  item()  Возвращает значение текущего элемента коллекции. Если коллекция пуста или текущий элемент не определен, возвращается неопределенное значение undefined  moveFirst()  Перемещает указатель на первый элемент коллекции. Если в коллекции нет элементов, текущий элемент принимает неопределенное значение undefined  moveNext()  Перемещает указатель на следующий элемент коллекции. Если перед применением этого метода указатель находился на последнем элементе коллекции, либо коллекция пуста, текущий элемент принимает неопределенное значение undefined 

Пример, поясняющий схему применения объекта Enumerator, приведен в листинге П1.6.

Листинг П1.6. Пример использования Enumerator

//Объявляем переменные

var FSO, Folder, Files, s;

//Создаем объект FileSystemObject

FSOWScript.CreateObject("Scripting.FileSystemObject");

//Создаем объект Folder для корневого каталога диска С:

Folder=FSO.GetFolder("С:\")?

//Создаем коллекцию файлов каталога "Мои документы"

Files=new Enumerator(Folder.Files);

//Цикл по всем файлам

for (; !Files.atEnd(); Files.moveNext())

 //Добавляем строку с именем файла

 s+=Files.item().Name+" ";

//Выводим полученные строки на экран

WScript.Echo(s);