Study JS for me/Algorithm
recursion 예제연습4
be well
2019. 5. 7. 15:25
var getElementsByClassName = function(className){
// 먼저 인자로 받는 className과 동일한 이름에 class이름을 가진 것을 찾아서
// 그 class이름과 동일한 class를 가진 것들을 빈 배열에 담아보자.
var result = []; // 빈배열 생성
function check(elements){ // elements는 class이름을 확인할 장소 ex) div , span 등등
if ( elements.classList){ // 그 장소에 class를 가진 게 존재한다면
if (elements.classList.contains(className)){ // 그 클래스에 인자로 받는 className이 있으면
result.push(elements); // 빈 배열에 넣어준다.
}
}
if( elements.hasChildNodes() ){ // 그 장소가 자식노드를 가지고 있다면
for ( var i = 0 ; i < elements.childNodes.length ; i ++)
check(elements.childNodes[i]); //각 자식노드를 check함수를 재귀해서 실행
}
}check(document.body); // 바디태그를 인자로 check함수를 재귀
return result;
}
재귀를 통해 자식노드를 똑같이 check 함수에 넣어서 실행하는 예.