2011-01-31 2 views

답변

4

array.every() 함수는 각 배열 요소에 대해 테스트 콜백 함수를 사용하지만 테스트 함수가 false를 반환하면 중지됩니다. 배열을 반복하면 모든 요소를 ​​거치지 않고 배열을 반복합니다. 다시 말해 array.every() 함수는 배열의 모든 요소가 특정 기준에 적합한 지 테스트하는 데 더 적절하게 사용됩니다. 자세한 내용은 array.every()의 the documentation을 참조하십시오.

0

기본적으로 배열에서 for 또는 while 루프의 일반적인 용도를 추상화하는 편리한 기능입니다. 코드를 작성하는 데 조금 더 빠르게하고 선호도에 따라 조금 더 명확하게 읽으십시오.

모든 요소에 대해 함수 호출을 수행하므로 array.every를 사용하면 약간의 오버 헤드가 발생합니다. 이것은 플래시 플랫폼에서 99.99 ... %의 시간에 아무런 문제가 없습니다.

2

배열의 각 요소가 IFoo 유형인지 확인하고 해당 요소에 따라 특정 작업을 수행한다고 가정합니다.

적어도 3 가지 방법이 있습니다.

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 
} 

I는 expec 두 번째 것은 가장 빠르지 만 세 번째 것은 임시 변수가 없어서 가장 우아합니다. 궁극적으로 당신이 선택한 것은 자신의 개인 스타일과 철학만큼 프로그램의 성격에 달려 있습니다.

관련 문제