입니다 :그래서 나는 다음과 같습니다 코드 블록이 자바 스크립트/노드
stack.forEach(function(element){
//sys.puts(sys.inspect(element, false, null));
console.log('-----element start-----');
console.log(element.type + ':' + element.raw);
console.log('-----element end-----');
if(element.children){
element.children.forEach(function(childElement){
stack.push(childElement);
});
}
});
문제는 이것이 내가 스택을 제외시켰다 것처럼 작동하지 않는 행동을하고 궁금 점이다 자바 스크립트 자체의 문제입니다. 각 자식이 처리를 위해 스택에 추가하기 위해 stack.push를 호출하면 초기 stack.forEach()가이를 선택하지 않고 최상위 요소에만 로깅하는 경우 나타나는 문제입니다. . 이 스택 바로 다음에 다른 스택을 시도하면 .push가 자식 요소를 스택에 추가하고 있음을 알 수 있으므로 다음 수준의 하위 요소를 표시합니다.
.forEach()는 마치 데이터를 그대로 잡고 foreach 내에서 발생하면 업데이트되지 않습니다. 자바 스크립트에서도 마찬가지입니까? 같은 것을 달성 할 수있는 다른 방법이 있습니까 (최상위 요소와 하위 요소의 모든 레벨을 처리 할 수 있어야합니다)?
사실은 그렇지 않습니다. 배열 항목을 삭제/연결하거나 수정하면 동작이 변경되어 '길이'스냅 샷 만 사용됩니다. – Bergi
나는 그것을 알았어, 고마워. – HBP