Предположим, вы хотите проверить, относится ли каждый элемент вашего массива к типу IFoo
и в зависимости от этого выполнять определенную операцию.
Существует как минимум 3 способа сделать это.1005 * 1.Итерация
var allFoo:Boolean = true;
for (var i:int = 0; i < array.length; i++) {
if (!(array[i] is IFoo)) {
allFoo = false;
break;
}
}
if (allFoo) {
// perform operation
} else {
// do something else
}
2.Перечень
var allFoo:Boolean = true;
for each (var e:* in array) {
if (!(e is IFoo)) {
allFoo = false;
break;
}
}
if (allFoo) {
// perform operation
} else {
// do something else
}
3.Array.every ()
function isElementFoo(item:*, index:int, array:Array):Boolean
{
return (item is IFoo);
}
if (array.every(isElementFoo)) {
// perform operation
} else {
// do something else
}
Я ожидаю, что второй будет самым быстрым, а третий - наиболее элегантным из-за отсутствия каких-либо временных переменных.В конечном итоге, какой из них вы выберете, зависит от характера вашей программы, а также от вашего личного стиля и философии.