Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

옥수수, 기록

고차 함수 막히던문제 해결 본문

카테고리 없음

고차 함수 막히던문제 해결

ok-soosoo 2022. 11. 17. 20:46

1. 단순한 문제 해결

function getLengthOfElements(arr) { 
  // arr에 string 타입요소 배열
  // 배열을 입력받아(arr) 각 요소의 길이를 요소로 갖는 새 배열 리턴
  // 반드시 arr.map을 사용할 것
  arr.map((string) => { // 여기 return을 붙이지 않아 계속 undefined가 나오던 것.. 허무
    
    return string.length;
  })

}

함수안에 고차함수를 또 사용할 때는 return 이 함수를 사용한 만큼 들어간다는 사실.. 잊지말자

 

2.

function computeAverageOfNumbers(arr) {
  // 
  const a = arr.reduce((acc, cur) => {
    return acc + cur;
  })
   return (arr.length > 0 ? a / arr.length : 0)
}

arr에는 number타입 요소가 들어가는 배열이 오고

그 배열의 모든 요소의 평균을 출력하는 문제였다.

다 해결되고 빈 배열이 들어갔을 때 자꾸  

TypeError: Reduce of empty array with no initial value
    at Array.reduce

라고 출력되길래 뭔가 했더니 Array.reduce 메서드는 길이가 0이거나 초기값이 존재하지 않는 배열인 경우 TypeError를 반환한다고 한다.

function computeAverageOfNumbers(arr) {
  // 
  const a = arr.reduce((acc, cur) => {
    return acc + cur;
  }, 0) // << 초기값 0을 넣어준다
   return (arr.length > 0 ? a / arr.length : 0)
}

문제 해결

- 이제arr에 []이 들어갔을 때 정상적으로 0이 출력된다.

Comments