재귀함수(recursion)를 활용해 getElementsByClassName() 메소드를 구현해봤습니다.
function getElementsByClassName(className) {
let result = []; // 결과 요소를 담을 배열
let body = document.body; // 최상위 element
//리커젼 함수
let recursion = function(element){
if(element.classList.contains(className)){ // element가 주어진 className을 담고 있는지 확인 후, true이면 result배열에 추가
result.push(element);
}
if(element.children.length > 0){ // 자식 element가 있으면
for(let i = 0 ; i < element.children.length ; i ++){ //for 문을 돌면서 리커젼을 통해 className 포함 여부를 확인
recursion(element.children[i]);
}
}
}
recursion(body);
return result;
}