//map set 자주 씁니다.
// set의 장점은 중복이 없는 배열 이죠.
// set은 자료구조중에 중복이 없는 배열이기 떄문에, set은 쓸 일이 많구요.
//map은 사실 저는,,사실 잘 안써봤던것 같아요.
// 저는 그냥 일반 객체 써가지고,,하고,,
//set 은 중복없는 배열 만들때 많이 쓴다.
//예를들어 코딩문제처럼 , 중복되는 값들을 제거하시오~
// [1, 2, 3, 1, 5, 4, 3, 7]
// Array.from(new Set([1, 2, 3, 1, 5, 4, 3, 7]));
//이렇게하면 바로 제거됨.
//1,2,3,5,4,7
// 중복 제거 이럴때 set 많이 쓰고,
//만약 애초에 중복되면 안되는 배열을 만들어야한다고 한다면,
// 저는 처음부터 set을 쓰죠.(저런 배열부터 쓰는게 아니라, 첨부터 set을 씁니다.)
// 중복이냐 아니냐 , 중복을 허용하냐 아니냐는, 프로그래밍할떄 엄청 많이 쓰이는 개념이에요.
//즉, 중복을 허용하냐, 중복을 허용하지않냐
//원래 set이 나오기 전까지는,
// 중복 되냐 안되냐를 매번 배열Array에서 includes , indexOf 이런걸로 직접 체크를 해줬는데요,
// 근데 그런거 필요없이 set을 쓰면 중복이 알아서 걸러지기 떄문에 편하죠.
// map은 잘은 안썻네요...
//map도 중복이 안되지 않냐 라고 하셨는데,
// 객체도 원래 중복이 안되요.
//map은 중복이 안되고, 객체자체도 중복이 안됨
// 그래서 굳이 map을 쓸 필요가 없어요.
// obj = {
// 'a':'b',
// 'a':'c',
// }
// 일반객체도 중복이 안됩니다.
//set에서 오브젝트인 경우에는 아마 그대로 들어갈꺼에요.
// 왜냐면 주소가 다르기 떄문에.
// new Set([{},{},{}]) // 소괄호애네는 서로 다 다르다 객체라서 중복이안된다, 저장된 주소값이 다르기 떄문에.
// > 0: Object
// 1:Object
// 2:Object
//소괄호애네는 서로 다 다르다 메모리에 저장된 주소값이 다르기 떄문에.
// 다만
// 이거는 되겠죠.
// const a = {};
// new Set([a,a,a]) // 이3개는 다 중복임
//이거는 걸러집니다.
// > 0:Object
// size:1
//즉, 똑같은 메모리주소에 저장되므로 중복으로 나온다는 말임.
// 위 처럼 참조가 같으면 같은 객체인데,
// 위에 위처럼 참조가 다르면 다른 서로 다른 객체기 때문에.