JavaScript/알고리즘

프로그래머스 길이에 따른 연산 JS (reduce())

hihiha2 2023. 5. 25. 17:03
반응형

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.

 

✅ 내 코드

function solution(num_list) {
  const list = num_list;
  if(list.length >=11){
      return list.reduce((a,b) => a +b ,0)
  } else {
      return list.reduce((a,b)=> a*b , 1)
  }
}

 

 

💻 내가 이용한 메서드

reduce(): 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환

Array.reduce()


 array.reduce(
  (accumulatorcurrentValue) => accumulator + currentValue,
  initialValue
);


 

✔️accumulator

누산기는 콜백의 반환값을 누적합니다. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값입니다.

✔️ currentValue

처리할 현재 요소.

 

✔️ initialValue 

callback의 최초 호출에서 첫 번째 인수에 제공하는 값. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용합니다. 빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생합니다.

 

 

💻 학습한 것

reduce의 기본형태 다시한번 상기함

 

 

🙋‍♀️ 내 생각

redece를 처음 접했을때는 엄청 어렵게 느껴졌었는데, 다시 사용해보니 엄청 편하고 좋은 메서드같다는 생각이 들었다. 

실제 구현하는 코드에서도 reduce를 잘 활용하면 내가 원하는 값을 얻기가 매우 수월해질것같다!!

반응형