본문 바로가기

Javascript 데이터 구조 & 알고리즘 공부3

Set 자료형에 중복되는 원소가 나타날 수 있을까? 원칙적으로 말하면 불가능하다. 이는 누구나 아는 사실이다. Set은 집합을 나타내기 위한 자료형이기 때문에, 중복값이 나타나면 안된다. 하지만 중복되는 원소가 나타나는 현상을 발견했기 때문에 이 글을 찾아왔을 것 같다. Set에 중복이 나타나는 상황은 언제일까? 이런 현상은 배열이나 객체와 같은 참조타입 데이터의 값을 Set에 넣을 때 발생한다. 이렇게만 말하면 잘 감이 안 잡히기 때문에 바로 예시를 들어보자. const set = new Set(); const obj1 = { key: 'value' }; const obj2 = { key: 'value' }; set.add(obj1); set.add(obj2); // obj1과 obj2는 값은 동일하지만 다른 객체 참조 console.log(set); .. 2023. 7. 3.
배열을 객체로, 객체를 배열로 만드는 방법 배열을 객체로 혹은 거꾸로 객체를 배열로 만드는 작업은 참 많이 쓰인다. 코딩테스트에서도 그렇고, 실제 프로젝트를 함에 있어서도 구현할 일이 많이 있다. 이런 작업을 수행하는 방법이 여러가지가 있어서, 치팅시트 마냥 짧게 정리했다. 배열을 객체로 만드는 방법 Array.prototype.reduce()를 이용한 방법 문법 reduce(callbackFn) reduce(callbackFn, initialValue reduce는 본래 단어의 의미가 '줄이다.'이다. 의미에서 알 수 있듯이 reduce는 배열의 원소에 대해 콜백함수를 반복호출하고 최종적으로 하나의 값(여기선 객체)을 출력한다. 가장 흔하게 볼 수 있는 방법이다. 이 방법을 사용한 코드는 다음과 같다. const arr = [1, 2, 3]; .. 2023. 6. 9.
배열이나 문자열 자르는 메소드: slice, substring, splice 정리 공부하다가 배열이나 문자열 자르는 메소드들이 헷갈려서 예시코드와 함께 정리했다. slice, substring, splice 얘네들은 하는 일은 뭔가를 자른다는 점에서 비슷하다. 근데 조금 하는 일이 다르다. 모질라 재단의 공식문서를 참고해서 해당 내용들을 공부하고 정리했다. *String.prototype.substr()함수 같은 경우 ECMAScript 표준에서 Deprecated (사용 권장 X)으로 나타나있습니다. 이것 대신 slice나 substring을 사용하는 것이 권장되므로 이 글에서 substr() 함수는 정리하지 않았습니다. Array.prototype.slice() slice() 메서드는 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반.. 2023. 5. 18.