강의

멘토링

커뮤니티

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

Sec님의 프로필 이미지
Sec

작성한 질문수

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

배열 메서드가 순수 함수인지 확인하는 방법

해결된 질문

작성

·

26

0

MDN에 배열의 메서드들이 많던데, 사이드 이펙트가 없는 순수 함수인지 확인하는 방법 있나요?

일일이 해당 메서드들에 여러 값을 입력하는 방법 밖에 없나요?

답변 2

1

효빈 Hyobin님의 프로필 이미지
효빈 Hyobin
지식공유자

안녕하세요 🙂 질문 감사합니다.

자바스크립트에는 매우 많은 배열 메서드가 있습니다. 따라서 모든 메서드들이 순수 함수인지 암기할 수는 없습니다. 자바스크립트를 사용해 개발을 하다보면, 비순수 함수들에는 무엇이 있는지 자연스럽게 알게 되실겁니다.

하나씩 값을 입력하는 방법 보다는 개발을 하다가 특정 배열 메서드를 사용할 일이 발생하는 경우에 검색을 해보시면 될 것 같습니다.

0

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

배열 메서드가 순수 함수인지 확인하는 방법에 대해 안내해드리겠습니다. 순수 함수란 입력값이 같으면 항상 같은 출력값을 반환하고, 실행이 외부 상태에 영향을 끼치지 않는 함수입니다. JavaScript의 배열 메서드 중에는 순수 함수로 간주되는 것과 비순수 함수가 혼재되어 있습니다.

  1. 순수 함수로 간주되는 메서드:

    • map: 배열의 각 요소에 함수를 적용하여 새로운 배열을 반환합니다.
    • filter: 조건에 맞는 요소만 포함하는 새 배열을 반환합니다.
    • reduce: 콜백 함수를 통해 하나의 값을 산출합니다.
    • find: 주어진 조건에 맞는 첫 번째 요소의 값을 반환합니다.
  2. 비순수 함수로 간주되는 메서드:

    • push, pop: 배열을 직접적으로 변경하며, 길이를 수정합니다.
    • splice: 배열을 추가, 제거, 변경합니다.
    • sort: 원래 배열을 정렬하여 변경합니다.

확인 방법:

  • 공식 문서 및 레퍼런스: 예를 들어, MDN 웹 문서(https://developer.mozilla.org/) 등 신뢰할 수 있는 문서를 참고하여 각 메서드의 동작과 특성을 파악하는 것이 중요합니다. 문서에는 각 메서드가 원본 배열을 변경하는지 여부와 반환값에 대한 정보가 나와 있습니다.

  • 테스팅: 때때로 직접 테스트 케이스를 작성하여 메서드의 동작을 확인할 수도 있습니다. 예를 들어, 동일한 입력으로 호출 시 결과가 변하지 않는지, 원본 배열 변형 여부 등을 테스트합니다.

관련된 유사한 질문을 통해 더 많은 내용을 알고 싶다면, 아래 링크를 참고해주세요:
- 자바스크립트의 배열 메서드에 관한 질문

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

Sec님의 프로필 이미지
Sec

작성한 질문수

질문하기