문제) 수를 입력받아 각 자리의 수를 곱한 결과물들이 한자리 수가 될 때까지 반복적으로 곱한 후 최후의 한 자리 수를 리턴한다.
입출력)
let output = test3(786); console.log(output); // --> 0
수도코드)
// 수를 문자열 형태로 변환한다. -> String(num)
// newnum의 길이만큼 반복문을 실행한다.
// 반복문 안에서 newnum의 각 요소를 mul 이라는 변수에 곱한다.
// 반복문이 끝나고 만약 mul의 길이가 1이 아니라면 mul을 전달인자로 Test 함수를 실행한다. -> 재귀형태
// 그렇지않아면 mul을 리턴한다.
문제) 사원들의 정보를 배열로 입력받아 HTML 옐리먼트의 형턔로 변형해서 ul#container에 append 한다. 단, a 요소로 만들어진 사원의 이름을 클릭할 경우, 제공되는 printRole 함수가 실행되어 해당 사원의 role이 콘솔에 출력되어야 한다.
입출력)
let list = [ { firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk' }, { firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager' }, ]; test4(list); // --> 'ul#container'가 아래와 같이 변경되어야 한다. <ul id="container"> <li> <a class="name">Joe Blow</a> <div class="age">42</div> </li> <li> <a class="name">Mary Jenkins</a> <div class="age">36</div> </li> </ul>
수도코드)
// arr의 길이만큼 반복문을 실행한다.
// 반복문 안에서 id가 container인 엘리먼트를 가져온다. -> document.querySelector
// li, a, div 태그를 생성한다. -> document.createElement
// a와 div에 클래스를 부여한다. -> classList.add
// a와 div에 텍스트를 부여한다. -> textContent
// a에 클릭 이벤트를 부여한다. -> addEventListener('click', ~~)
// 반복문이 끝나고 printRole 함수에서는 해당 사원의 role이 콘솔에 출력된다.