Inflearn brand logo image

인프런 커뮤니티 질문&답변

kbsuffer4166님의 프로필 이미지
kbsuffer4166

작성한 질문수

Amazing JavaScript - 입문

배열 주요 API - map과 filter

22강 filter 매소드 (내장 API) 질문

작성

·

17

0

map과 filter 내장 API에 대해 설명하시면서,

 

전자는 원본 배열을 바꾸지 않고

후자는 원본 배열을 바꾼다고 하셨습니다.

 

const arry = [10,20,30] 배열이 있는 상태에서

20을 꺼내오고 싶어서 코드를 작성했습니다.

 

arry.filter( (item) => {
if (item === 20) {
return true}
} )

리턴값으로 20은 나왔지만, 원본(?) 배열 arry의 값은 [10,20,30] 으로 그대로 입니다.

pop,push, spilice는 원본 배열의 값이 바뀐걸 그 자리에서 확인할 수 있는데 flilter 는 아닌 것 같아서요. 혹시 강의 설명을 잘못하신걸까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. kbsuffer4166님.

filter 메소드에 대한 질문 주셨군요! filter 메소드는 원본 배열을 수정하지 않고 새로운 배열을 반환하는 메소드입니다. 따라서 주신 코드를 사용하면, 원본 배열 arry는 변경되지 않고, 조건을 만족하는 요소로만 이루어진 새로운 배열 [20]가 반환됩니다.

원본 배열을 직접 변경하는 메소드들은 pop, push, splice와 같은 메소드들입니다. 이는 강의에서 설명하시면서 혼동이 있었을 수 있습니다. filter 메소드와 같은 비파괴적 메소드는 원본 배열을 변경하지 않으므로, 화면에 직접적인 변화가 보이지 않을 수 있습니다.

다음 링크를 통해 유사한 질문을 확인해보실 수 있습니다: splice

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kbsuffer4166님의 프로필 이미지
kbsuffer4166

작성한 질문수

질문하기