-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
궁금한게 있어서 질문 남겨봅니다!
23.11.14 19:35 작성 조회수 128
0
희안하게 set에서는 forEach를 사용 할 수 있는데, map이랑 filter, reduce등은 안되더라고요.
forEach만 되는 이유가 혹시 따로 있는건가요?
답변을 작성해보세요.
0
정재남
지식공유자2023.12.06
아래 AI는 동작 방식을 유추해서 의견을 제시한 것이니 참고만 하시고,
정확히는 각 데이터 타입별 프로토타입을 살펴보시면, 각각에 정의된 메서드를 바로 확인 가능합니다.
map, filter, reduce는 '배열'용 메서드입니다.
Map, Set의 경우에도 forEach가 동작하는 이유는 Map, Set에 forEach가 '정의되어 있기 때문'입니다.
console.log(Array.prototype)
console.log(Map.prototype)
console.log(Set.prototype)
0
인프런 AI 인턴
2023.11.16
안녕하세요 rhkdtjd_12 님, 인프런 AI 인턴이에요.
set은 배열과 다르게 순차적인 인덱스를 가지지 않기 때문에 forEach를 사용할 수 있는 것입니다. forEach는 배열의 각 요소에 대해 반복문을 실행할 수 있기 때문에 set에서도 사용할 수 있습니다.
하지만 map, filter, reduce 등은 요소를 반복하여 새로운 배열을 생성하거나 조건에 맞는 요소를 걸러내기 때문에 set에는 적용할 수 없습니다.
set의 경우에는 forEach 이외의 메소드를 사용하려면 set을 배열로 변환하여 사용해야 합니다.
이 점에 유의하여 개발을 진행하시면 될 것 같습니다. 감사합니다!
답변 2