for...in - Цикл, используемый для перечисления свойств объекта
for...in - Цикл, используемый для перечисления свойств объекта
for...in
Цикл, используемый для перечисления свойств объекта.
Синтаксис:
for (var thisProp in object) { statements // Предложения обычно используют thisProp}
Вместо повторения серии предложений, пока заданное проверочное выражение не даст значения false, цикл for-in осуществляется по одной итерации для каждого свойства для заданного объекта.
Предложения for-in не требуют явного обновляющего предложения, поскольку число итераций цикла определяется числом свойств рассматриваемого объекта.
Предложения statements выполняются по одному разу для каждого свойства object;
На каждой итерации цикла переменная thisProp временно хранит строку, которая содержит имя свойства объекта, перечисляемого в данный момент. Это значение строки можно использовать во время каждой итерации, чтобы получить доступ к каждому свойству и обработать его.
Простейшим примером цикла for-in является сценарий, который перечисляет свойства объекта.
Примеры:
Создание объекта, а затем перечисление по пунктам его свойств с помощью цикла for-in
var ball = new Object();ball.radius = 12;ball.color = "red";ball.style = "beach";for (var prop in ball) { trace("balls has the property " + prop);}
Пример выведет следующее
balls has the property style balls has the property color balls has the property radius
Т.к. prop хранит имена свойств ball как строки, для извлечения значений этих свойств можно использовать prop с оператором []:
for (var prop in ball) { trace("balls." + prop + " is " + ball[prop]);}
Пример выведет:
ball.style is beach ball.color is red ball.radius is 12
Стоит обратить внимание, что свойства объекта, просматриваемые в цикле for-in, нумеруются в непредсказуемом порядке. Кроме того, предложения for-in не всегда перечисляют все свойства объекта. Если объект определен пользователем, перечисляются все свойства, включая унаследованные.
Но некоторые свойства встроенных объектов предложением for-in пропускаются. Например, этим циклом не перечисляются методы встроенных объектов. Если вы хотите использовать предложение for-in для работы со свойствами встроенного объекта, сначала создайте проверочный цикл для определения доступных свойств объекта.
Извлечение значений свойств с помощью цикла for-in предоставляет также отличную возможность обнаружения клипов, присутствующих на временной диаграмме.
Пример: Заполнение массива динамически идентифицируемыми клипами
var childClip = new Array();var childClipCount = 0;for(i in _root) { thisItem = _root[i]; if(typeof thisItem == "movieclip") { // Обратите внимание на постфиксный оператор инкрементирования childClip[childClipCount++] = thisItem; }}// После заполнения массива можно использовать его// для обработки клипов, которые в нем находятся// Поместить первый клип у левого края рабочего столаchildClip[0]._x = 0// Поместить второй клип у верхнего края рабочего столаchildClip[1]._y = 0
В приведенном примере при использовании в предложении for-in функция typeof дает удобный способ нахождения всех экземпляров клипа на временной диаграмме.
Когда клипы определены, их можно присвоить массиву для проведения программной обработки.
Цикл for-in также можно использовать для извлечения элементов массива. В этом случае цикл примет вид:
for (var thisElement in array) { statements;}
Пример: Перечисление элементов массива
var myArr = [123, 234, 345, 456];for( var elem in myArr) { trace(myArr[elem]);}
Совместимость:
Используется с 5-ой версии Flash
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
3.20. Как мне изменить time-server, используемый XP?
3.20. Как мне изменить time-server, используемый XP? Список серверов, которые используются для синхронизации времени на локальной машине и сервере, находится в HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion DateTime Servers Добавьте здесь свой, или удалите существующие, если Вам эта возможность не
Протокол, используемый для загрузки
Протокол, используемый для загрузки Телефоны Polycom могут загружать свою конфигурацию по одному из трех протоколов: TFTP, HTTP и FTP.Сразу же хотим попросить избегать TFTP. Он не обеспечивает необходимой безопасности, и телефон не может использовать информацию о дате для
12.17 Используемый транспорт
12.17 Используемый транспорт Запросы и ответы DNS обычно пересылаются через UDP, но разрешается применять и TCP, который используется для переносов
Перечисления
Перечисления С++ позволяет с помощью перечисления объявлять набор поименованных констант аналогично тому, как это делается в C#. Предположим, что в программе требуется хранить названия дней недели:enum DayOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};Обычно это объявление
2.2.1. Цикл типа “пока” (цикл с предусловием)
2.2.1. Цикл типа “пока” (цикл с предусловием) Пример 1.4: Нахождение наибольшего общего делителя двух целых положительных чисел с помощью известного алгоритма Евклида.Пока X ? Y делать если X> Y то X:=X-Y иначе Y:=Y-X; Писать (‘НОД=’, X);WHILE X <> Y DO IF X> Y THEN X:=X-Y ELSE Y:=Y-X; WRITE
2.2.2. Цикл типа “до” (цикл с постусловием)
2.2.2. Цикл типа “до” (цикл с постусловием) Этот цикл выполняется не менее одного разаПример 1.5: Решение предыдущей задачи. Цикл с постусловиемПовторять если X> Y то X:=X-Y иначе Y:=Y-X до X=Y;Писать (‘НОД=’, X);REPEAT IF X> Y THEN X:=X-Y ELSE Y:=Y-X UNTIL X=Y;WRITE (‘НОД=’, X);REPEAT –
2.2.1. Цикл типа “пока” (цикл с предусловием)
2.2.1. Цикл типа “пока” (цикл с предусловием) Пример 2.4: Программа находит наибольший общий делитель двух целых чисел.#include <assert. h>#include <stdio. h>int main (){int x, y;printf (“Введите два целых числа через пробел ”);int r = scanf (”%d%d”, &x, &y);assert (r == 2);while (x!= y) if (x> y) x = x – y; else y =
Изменение свойств объекта
Изменение свойств объекта Рассмотрим возможность изменения свойств объекта в библиотеке 3D Home Architect Design Suite Deluxe, которая позволяет достичь большого разнообразия при составлении дизайнерских проектов.Можно изменять материал, из которого сделан объект. Для этого нужно
Установка свойств объекта с помощью процедур Property Let
Установка свойств объекта с помощью процедур Property Let Процедура Property Let устанавливает значение свойства. В своей простейшей форме процедура Property Let берет переданное ей в виде аргумента значение и присваивает его переменной, представляющей свойство. В предыдущем примере
Чтение свойств объекта с помощью процедур Property Get
Чтение свойств объекта с помощью процедур Property Get Процедура Property Get подобна процедуре типа Function в том смысле, что она возвращает значение - конечно же, значение свойства, Как и в случае процедуры типа Function, значение, которое должно быть возвращено, присваивается имени
6.1.1. Символы как перечисления
6.1.1. Символы как перечисления В языке Pascal и в поздних версиях С есть понятие перечисляемого типа. В Ruby ничего подобного быть не может, ведь никакого контроля типов не производится. Но символы часто используются как мнемонические имена; стороны света можно было бы
Ответный файл, используемый по умолчанию (csc.rsp)
Ответный файл, используемый по умолчанию (csc.rsp) В отношении ответных файлов следует знать то, что компилятор C# имеет ответный файл, используемый по умолчанию. Это файл csc.rsp, размещенный в том же каталоге, что и csc.exe (соответствующим каталогом может быть, например,
3.8. Перечисления
3.8. Перечисления Нередко приходится определять переменную, которая принимает значения из некоего набора. Скажем, файл открывают в любом из трех режимов: для чтения, для записи, для добавления.Конечно, можно определить три константы для обозначения этих режимов:const int input
2.4.7 Перечисления
2.4.7 Перечисления Есть другой метод определения целых констант, который иногда более удобен, чем применение const. Например:enum (* ASM, AUTO, BREAK *);перечисление определяет три целых константы, называемых перечислителями, и присваивает им значения. Поскольку значения