어떤 함수가 스스로를 호출하는 것.
배열을 인자로 입력받는 경우, head/tail 로 나누는 경우가 꽤 많음
tail: 배열의 첫번재 요소 : arr[0]
head: 배열의 첫번째 요소를 제외한 나머지 요소들을 가진 배열 : arr.slice(1)
isOdd를 구할때,
인자로 받는 num에서 계속해서 -2
를 빼주는 작업을 해주기
코드로 살펴보면
function 길이구하기(arr) {
let head
let tail
//arr = [head, ...tail] 이러한 구조를 가짐.
if(빈배열인경우){
return 0;
}
else{ //빈배열이 아닌경우
return 1 + 길이구하기(tail);
}
}
if(!ma.ma ===null){ return false; }
이렇게 하면 ma.ma값이 빈객체인 경우를 따로 조건을 작성해 주어야 한다.
if(!ma.ma){ return false; }
이렇게 작성하는 경우 빈객체인 경우 false 를 리턴하는 것도 포함한 조건이 된다.
이 부분은 아직도 헷갈림... 뭘까 대체 ?
**참과 거짓(Truthy & Falsy)**
1. False인 값
undefined
null
0
-0
NaN
false
''
""
**위에 명시된 값들을 제외한 모든 값들은 true이다.**
2. True인 값
'0' (0을 포함하는 문자열)
'false' (false를 포함하는 문자열)
[] (빈 배열)
{} (빈 객체)
function () {} (빈 함수)
5주가 지나긴 했지만 다시푸는 기본 알고리즘 문제인데도,
처음 접하는 페어와 큰 차이가 느껴지지 않았다.
휴~ 왜 내가 기수이동을 하게 되었는지 알게되는 부분 :)
기수이동(꼭 마지막 기수이동이 되길 바라며)을 했는데 요번 기수분들은 굉장히 활발했다.
서로 아는 지식도 나누고.. 특이한(?) 조크도 자꾸 나누어서 실소가(찐웃음이 아니야..)
터지기도 몇번,,
그치만 무엇보다 이분들의 적극성과 열정이 느껴져서 나에게 자극이 된다.
결국은 기수이동도 나쁘지 않다는 이야기^_^
요번에는 예복습 진짜 놓치지 않겠돠...