키가 있는 데이터를 저장한다는 점에서 객체와 유사하다. 하지만 키에 다양한 자료형을 허용한다.
배열처럼 삽입 순서를 기억한다.
Object.entries
를 사용해서 obj를 배열로 바꾸고 새로운 맵으로 만들 수 있다. Object.fromEntries
: 맵을 객체로 바꾸기오 신기하다... 이제 맵으로 바꿔보자
Object.fromEntries
는 [키, 값] 쌍인 배열을 객체로 바꾼다!
여기서 콜백에 세 개의 인자가 흥미로운 점이라고 하는데 아직 잘 모르겠다. 맵과 호환성 때문에 동일 인자(value, valueAgain)이 들어간다고 한다. 차차 알게 되겠지.
function unique(arr) {
return Array.from(new Set(arr));
}
new Set의 인자로 arr를 주고 Array로 배열 생성
후.. set 이해도 엄청 떨어지네
중복을 찾는 거라서 당연히 set인 줄 알았는데 map으로 했다.
map.set(sorted, word);
이 부분이 포인트인데 키가 동일하면 값이 덮어씌워 진다. 즉, 키값이 중복되면 알아서 하나만 담긴다.
Array.from(map.values());
여기를 생각하는 데 항상 막힌다.
map.values()
-> 객체 반환
Array.from
-> 다시 배열로
map.keys()는 배열 아니고 이터러블 반환!