JavaScript_Study [ Higher order function (배열 고차 함수) ]

이준석·2023년 4월 13일
0

JavaScript_Study

목록 보기
22/35
post-thumbnail

2021-10-07, 2021-10-08 노션페이지
2021-10-12 노션페이지
2021-11-18 노션페이지
기록된 노션을 다시 정리

어려웠던 부분

  • 많은 메소드들을 모두 알고있을려고 함
  • 웹페이지에서 이해를 돕기위해 만든 코드에서 처음보는 것들이 때문이지 더 이해하기 어려웠다. (웹페이지에서 확인)
  • sort함수의 비교함수에서 a-b, b-a가 어떻게 내림차수, 오름차순으로 정해지는지 (어떻게 정렬이 되는지)
    => 밑에 설명 확인

고차 함수(Higher order function)

  • 함수를 인자로 전달받거나 함수를 결과로 반환하는 함수를 말한다.
    ex)
// 인자로 함수를 넣음
points.sort(function (a, b) { return a - b; });

1. Array.prototype.sort()

  • 배열의 요소들을 정렬 (원본 배열을 직접 변경함)
  • 주의할 점
    • 비교 함수를 생략하면 배열의 각 요소는 일시적으로 문자열로 변환되어 Unicode 코드 포인트 순서에 따라 정렬된다.
    • 숫자를 정렬할 때 [10, 2] 이렇게 존재할 때 숫자 자체를 보지 않고 자릿수 끼리 비교한다 (1번째 자리 부터)
  • 해결법 (비교함수를 인수로 전달한다)
    [10, 2].sort(function (a, b) { return a - b; });

정렬이 되는 방법

  • 이 함수가 리턴하는 값이 0보다 작을 경우, a가 b보다 앞에 오도록 정렬하고,
  • 이 함수가 리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬한다.

2. Array.prototype.forEach()

  • forEach 메소드는 for 문 대신 사용할 수 있다.
  • 반환값은 undefined이다.
  • forEach 메소드는 for 문과는 달리 break 문을 사용할 수 없다.
  • forEach 메소드는 for 문에 비해 성능이 좋지는 않다.
    • 하지만 for 문보다 가독성이 좋으므로 적극 사용을 권장한다.

3. Array.prototype.map()

  • 배열의 모든 요소를 콜백함수의 인자로 사용하며, 콜백함수 거쳐 나온 반환값들로 다시 배열을 생성한다.

4. Array.prototype.filter()

  • filter 메소드를 사용하면 if 문을 대체할 수 있다.
  • 배열의 모든 요소를 콜백함수의 인자로 사용하며, 콜백함수의 실행 결과가 true인 배열 요소의 값만을 추출한 새로운 배열을 반환한다.

5. Array.prototype.reduce()

  • 배열을 순회하며 각 요소에 대하여 이전의 콜백함수 실행 반환값을 전달하여 콜백함수를 실행하고 그 결과를 반환한다.
  • 이해하기나 사용하기에 까다롭다.
  • 전에 실행한 함수의 리턴값을 인자로 받고 또 다시 함수 실행하고 또 그 리턴값을 다음 함수의 인자로 사용
  • 초기값을 넣어서 실행하면 첫번째 함수실행에서,
    본래 리턴값으로 사용되는 자리에 사용됨
  • 흰색 화면으로 보기

6. Array.prototype.some()

  • 배열 내 일부 요소가 콜백 함수의 테스트를 통과하는지 확인하여 그 결과를 boolean으로 반환한다.
  • 테스트를 통과하는 요소가 하나라도 있다면 true 반환

7. Array.prototype.every()

  • 위 some메소드와 맥락은 같지만 해당 메소드는 모든 요소가 통과해야 true반환

8. Array.prototype.find()

  • 콜백함수를 실행하여 그 결과가 참인 첫번째 요소를 반환한다.

9. Array.prototype.findIndex()

  • 콜백함수를 실행하여 그 결과가 참인 첫번째 요소의 인덱스를 반환한다.
  • 위 함수와 차이점이 반환값이 다르다.

10. Array.prototype.includes()

  • 웹페이지엔 없지만 자주사용되는 메소드
  • 배열 요소 중 내가 찾는 요소가 있다면 true 반환
    • (조건식에 충족하는 요소가 하나라도 있다면)

참조: poiemaweb.com

0개의 댓글