웹 개발 메모장
[자바스크립트] 배열의 reduce() 함수 본문
배열.reduce(함수)
매개변수로 함수를 넘기면 해당 배열의 모든 원소들이 순차적으로 함수의 내용을 누적해서 연산하여 결과를 return 합니다.
아래와 같이 arr이라는 배열에서 reduce 함수를 호출하면 더한 값을 return 하는 함수가
반복 실행되어 1+2+3+4+5를 반환하게 됩니다.
1 2 | var arr = [1,2,3,4,5]; var sum = arr.reduce((a, b) => a + b); | cs |
1 | (a, b) => a + b | cs |
※ 위 코드는 람다식 표현으로 아래의 코드로 아래와 같은 코드입니다.
1 2 3 | function(a, b) { return a + b; } | cs |
약수의 합을 구하는 함수를 예로 들어 보겠습니다.
아래의 코드는 숫자를 입력받아 약수의 합을 return 하는 함수입니다.
1 2 3 4 5 6 7 8 9 10 11 | function sumDivisor(num) { var answer = 0; for(var i=1;i<=num/2;i++) { if(num%i == 0) { answer += i; } } return answer+num; } | cs |
위 코드를 reduce를 사용하여 아래와 같이 표현할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 | function sumDivisor(num) { var result = []; for (var i = 0; i <= num; i++) { if (num % i === 0) { result.push(i); } } return result.reduce((a, b) => a + b); } | cs |
'옛날.. > 자바스크립트' 카테고리의 다른 글
[JQuery] input type=file 태그 CSS 변경하기(trigger()) (0) | 2018.01.02 |
---|---|
[자바스크립트] 숫자 배열, 문자 배열 정렬하기 sort() (0) | 2017.11.30 |
[자바스크립트] 에디터 만들기(document.execCommand()) (1) | 2017.11.20 |
[JQuery] 상단메뉴 슬라이드(펼치기) 초간단 (0) | 2017.11.15 |
[JQuery] 팝업창에서 데이터 받아오기 (0) | 2017.07.23 |
Comments