문제) 객체를 요소로 갖는 배열과 id를 입력받아, 해당 id 값을 가지고 있는 객체를 리턴한다.
입출력)
let input = [ { id: 1, name: 'johnny', }, { id: 2, name: 'ingi', children: [ { id: 3, name: 'johnson', }, { id: 5, name: 'steve', children: [ { id: 6, name: 'lisa', }, ], }, { id: 11, }, ], }, { id: '13', }, ]; let output = test7(input, 1); console.log(output); // --> { id: 1, name: 'johnny' }
수도코드)
// 입력받은 배열의 길이만큼 반복문을 실행한다.
// 만약 배열의 i번째 요소의 id가 찾고자 하는 id와 같다면 해당 인덱스의 객체를 리턴한다.
// 그렇지 않으면 배열의 i번쨰 요소의 children이 배열인지 확인한다.
-> Array.isArray
// 배열이라면 newarr 이라는 배열에 children을 담는다.
// 반복문이 끝나고 newarr의 길이가 0보다 크다면
//newarr, id를 전달인자로 Test7 함수를 실행한다. -> 재귀
// 그렇지 않으면 null을 리턴한다.
이렇게 테스트로 봤던 7문제들을 다 복습하였다.
문제를 푸는 도중 긴가민가 했던 개념들도 있었고, 다시 복습해야 했던 개념도 있었다. 남은 주말동안은 그동안의 개념들을 다시 한번 복습하는 시간을 가져야겠다 :~