map

    TIL - 20221008 (객체와 Map 성능 차이)

    코딩테스트 문제를 풀고 나서 다른 사람의 풀이를 공부할 겸 참고해보면 종종 Map과 Set을 사용하여 푸는 경우가 있다. 객체와 Map의 차이로 가장 큰 차이점은 Map의 키로는 자료형에 제약이 없다는 점이었는데 성능에 차이가 있는지 알아보는 시간을 가졌다. 데이터 갱신 측면에서, Map의 set이 객체의 set보다 2배 느리다. 데이터 조회 측면에서는 Map이 객체보다 10배 더 빠르다. 데이터 갱신 측면의 이유로는 객체의 경우 데이터가 순차적으로 적재되지 않기에 set 활동이 일어나면 아무 빈 공간에 만들어서 값을 넣지만, Map은 순차적으로 데이터를 적재하고 적재하면서 수반되는 추가 활동이 Map의 set 처리에 영향을 주어 객체의 set보다 느려지게 된다. 데이터 조회 측면의 이유로는 객체의 경우..

    TIL - 20220706

    TIL - 20220706

    오늘은 모던 JavaScript 튜토리얼에서 맵과 셋(https://ko.javascript.info/map-set)에 대하여 공부했다. 코딩 테스트를 준비하면서 중복을 제거하는 법 중 하나인 셋을 이 당시에 처음 알게 되어 오늘 이 셋과 맵에 대하여 자세하게 공부할 수 있었다. 맵과 셋을 읽으며 작성한 질문은 다음과 같다. 맵과 객체의 공통점은 키가 있는 데이터를 저장한다는 점이고, 차이점은 객체는 키로 문자형만 이용할 수 있지만, 맵은 키로 모든 자료형이 가능하다. 심지어 객체까지도! 셋은 중복 없는 값이 저장되며 키가 존재하지 않는다. 지금까지 주로 사용한 객체는 객체와 배열이 전부였다. 맵을 잘 모를 때, entries와 fromEntries 메소드를 강의에서 사용하는 걸 보아도 이게 맵이어서 사..

    TIL - 20220703

    TIL - 20220703

    오늘은 모던 JavaScript 튜토리얼에서 배열과 메서드(https://ko.javascript.info/array-methods)에 대해 공부했다. 이번 장은 JavaScript에 존재하는 모든 배열 메서드를 다루기 때문에 문제를 만들기보다 배열의 메서드들을 내 언어로 다시 작성하는 시간을 가졌다. JavaScript를 사용하면서 거의 map만 썼던 것 같은데, 생각보다 더 많은 메서드가 있구나라고 느낀 순간이었다. 배열의 요소를 추가하는 메서드, 삭제하는 메서드, 교체하는 메서드 모두 존재하지만, 이 기능을 splice 하나로 모두 다 할 수 있다. 배열과 객체를 typeof로 확인하면 다음과 같은 결과가 나온다. alert(typeof {}); // object alert(typeof []); /..