재귀 검색은 주로 중첩 된 개체/데이터를 검색하는 데 사용됩니다. 객체 중 일부가 서로를 참조하면 무한 루프가 될 수 있습니다. 그렇다면 컴퓨터를 손상시키지 않고 지정된 매개 변수를 건너 뛰지 않고 모든 항목을 검사하는 가장 효과적인 방법은 무엇입니까? 여기 반복되지 않고 AS3 반복 객체 스캔?
는 다음가에서 서로에 대한 스캔을 트리거//...
obj1.next = obj2;
//...
obj2.next = obj3;
//...
obj3.next = obj1;
//...
recursiveScanner(obj1, scanFuction);
개체에 전달 될 때
/**
* Triggers the scan function for each object given
**/
function recursiveScanner(object:* , scanFunction:Function):void {
if(typeof(object) == 'object') {
for(var key:String in object) {
recursiveScanner(object[key], scanFunction);
}
} else {
scanFunction.call(this, object);
}
}
그러나 큰 문제가 발생 ... 재귀 스캐너의 예 영원한 고리. 그래서 이것을 해결할 수있는 방법이 있습니까?
나는 C/C++를 믿는다 : 각 scanFunction 호출은 스캔 한 '메모리 주소'로 구성된 목록에 추가되어 반복을 방지한다. 이것은 AS3에서도 가능합니까? 더 우아한 방법이 있습니까?
Ahh ... 개체 ID가 사전에 특성으로 사용됩니다. 솔루션의 Thx =) – PicoCreator