181126 TIL Lec4 array parser step5
Nov 26, 2018
»
1막,
TIL (Today I Learned),
코드스쿼드
array parser step5 객체 구현
이 스텝에서는 변태스러운 아래 예시가 돌아가도록 구현해야한다…
var str = "['1a3',[null,false,['11',[112233],{easy : ['hello', {a:'a'}, 'world']},112],55, '99'],{a:'str', b:[912,[5656,33],{key : 'innervalue', newkeys: [1,2,3,4,5]}]}, true]";
step3 배열 무한중첩때도 어떻게 해야될 지 몰라서 완전 멘붕이었는데, 객체를 어떻게 구현해야할 지 감이 안왔다. 여러 시행착오 끝에 콜론을 기준으로 key, value 값을 받고, key값은 type을 objectKey로 하여 결과값에 push하였다.
오늘 알게된 사실!
위에서 처음 선언해준 child = [ ] 는 빈 배열을 넘겨주는 것이 아니라 child가 가리키는 주소를 넘겨준다. 근데 이걸 생각 못해서 결국 child === lastChild === Data 객체의 child가 같아져서 계속 여러 곳에 push하는 일이 발생했다. 아래처럼…
뜻밖의 재귀
아래처럼 바로 빈 배열을 넘겨주는 식으로 수정하였다.
array parser 너무 힘들다….ㅠㅠ