Jinho

[Vanilla Coding Prep W03] 6, 7주차 회고

2021. 9. 3. 20:49

전반적으로 멘붕과 자괴감과 고됨이 함께했던 시간. 그런데 아직까지 재미있는거 보면 좀 신기 ㅎ

후기

1.

_.contains(collection, target) 을 수정하면 안된다고해서
_.reduce(collection, iterator, accumulator) 를 수정했다. object도 가능하도록. 원래는 아래 코드였음.

if (accumulator === undefined) { ​​​​for (let i = 2; i < collection.length; i++) { ​​​​​​accumulator = iterator(collection[0], collection[1]); ​​​​​​accumulator = iterator(accumulator, collection[i]); ​​​​}; ​​} else { ​​​​for (let i = 0; i < collection.length; i++) { ​​​​​​accumulator = iterator(accumulator, collection[i]); ​​​​}; ​​};

2.
_.contains(collection, target) 에서 쓰인 _.reduce(collection, iterator, accumulator)를 제대로 파악하기 위해서 아래와 같이 메모해가며 작업을 해보았다. 예시를 넣어 좀 더 직관적으로 파악하기 위한 작업이었는데 나름 괜춘한듯 하다. wasFound 파악이 제일 모호했는데 다음 작업들에 도움이 될 것 같은 느낌이다.

_.contains = function ({ a: 1, b: 2, c: 3 }, 3) { ​​return _.reduce( ​​​​{ a: 1, b: 2, c: 3 }, ​​​​function (wasFound, item) {if (wasFound) {return true;} return item === target;}, ​​​​false ​​); } 1턴 기준 a: 1 / wasFound(accumulator): false / item: 1 / target: 3 / item === target: false 2턴 기준 b: 2 / wasFound(accumulator): false / item: 2 / target: 3 / item === target: false 3턴 기준 c: 3 / wasFound(accumulator): false / item: 3 / target: 3 / item === target: true 최종 반환값 : true (=== wasFound(accumulator)) // 첫번째 wasFound 는 초기값인 false 를 받아서 오는거임. // _.every(collection, iterator) 에서도 써먹음. // _.some([true, false, 1], _.identity) 에서도 써먹음.

3.
초기 코드이다. 원본은 수정. 다만 이 뒤에 _.default 에서 벨붕 ㅠ 이 두가지의 완전한 리팩토링이 필요하다.

_.extend = function (obj) { ​​const objSource = Object.entries(obj) ​​for (let i = 0; i < arguments.length; i++) { ​​​​let argSource = Object.entries(arguments[i]); ​​​​for (let j = 0; j < argSource.length; j++) { ​​​​​​objSource.push(argSource[j]); ​​​​}; ​​}; ​​const extended = Object.fromEntries(objSource); ​​return extended; };

4.

나머지는 질문사항에 적어두었으니 코드리뷰 후 재정리를 해보자.

 

 

추가

잊지말자! 되새김~

  • var : funtion Scope
    const, let : Block Scope

추가 공부할 부분

  • microtask
  • 매일매일 알고리즘 하나씩 푸는걸 목표로!

 

작성자

Posted by yoonjinho

작성자 정보

개인적인 소회들을 기록합니다.

관련 글

댓글 영역

블로그