Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스 프론트엔드 데브코스
- vue 이벤트 수신
- 이벤트 수식어
- 리액트
- 다른컴퓨터에서 git사용
- SCSS extend
- Spacer
- postcss
- 프로그래머스 K_Digital Training
- vue 지역 컴포넌트
- intersection opserver
- 리스트 렌더링
- netlify redirect
- SCSS forward
- 고양이 사진 검색기
- SCSS import
- 프로그래머스 데브코스
- 쌓임맥락
- Vue
- nextjs사용법
- KDT 프로그래머스
- react next
- vue mixin
- 폼 입력 바인딩
- KDT 프로그래머스 데브코스 프론트엔드
- vuex map
- git 같은계정 다른 컴퓨터
- 프로그래머스 데브코스 프론트엔드
- flex
- SCSS use
Archives
- Today
- Total
혼자 적어보는 노트
[javascript] forEach, map, filter, reduce 차이 본문
forEach랑 filter는 종종 사용했었는데
map이랑 reduce는 안쓰다보니 헷갈려서 정리!
forEach, map, filter, reduce
*콜백함수를 사용하는 메소드들
*배열안의 요소들을 하나하나 탐색해줌 (for문 처럼)
1. forEach
*주어진 함수를 배열안의 요소들에게 각각 실행.
let a= ["사과","바나나","복숭아"];
a.forEach(function(value, index){
console.log(value, index, this);
}, [1,2])
// 결과
// 사과 0 [1,2]
// 바나나 0 [1,2]
// 복숭아 0 [1,2]
2. map
원본 배열의 요소들을 하나하나 탐색하면서 return한 값들로 새로운 배열을 생성. (원본 배열의 길이와 동일)
let a= ["사과","바나나","복숭아"];
let answer = a.map(function(value, index){
return value+"맛";
}, [1, 2]);
console.log(answer);
//["사과맛", "바나나맛", "복숭아맛"]
그런데 만약 조건을 넣고 그 조건에 해당된 값만 넣으려 한다면
배열의 길이는 유지하기 때문에 undefined로 처리 됨.
let a= [10,20,30,40,50];
let answer = a.map(function(value, index){
if(value<3) return value;
}, [1, 2]);
console.log(answer);
//[10, 20, undefined, undefined, undefined]
*새로운 배열을 생성하지만 배열의 길이는 동일.
3. filter
원본 배열의 요소들을 하나하나 탐색하면서 조건에 맞는 새로운 배열을 생성. (원본 배열의 길이 무시)
let a= [10,20,30,40,50];
let answer = a.filter(function(value, index){
return value<30;
}, [1, 2]);
console.log(answer);
//[10, 20]
* 콜백함수에서 true를 리턴한 값들로만 새로운 배열 생성.
4. reduce
원본 배열의 요소들에 함수를 실행하고 하나의 결과 값을 리턴.
let a= [1,2,3,4,5];
let answer = a.reduce(function(acc, value, index){
return acc+value;
}, 0);
console.log(answer);
// 15
첫번째 인자는 콜백함수의 인자, 두번째는 초기화 값
acc = 0(초기화한 0값) + value
acc+value 를 배열이 끝날 때 까지 반복
'Javascript' 카테고리의 다른 글
[Javascript] 배열 정렬하기 sort() / 오름차순, 내림차순 (0) | 2021.10.17 |
---|---|
[javascript] 심리테스트 만들기 - 3 (0) | 2021.10.14 |
[Javascript] 자릿 수끼리 더하는 법 (0) | 2021.10.13 |
[javascript] 심리테스트 만들기 - 2 (0) | 2021.10.11 |
[javascript] 심리테스트 만들기 - 1 (0) | 2021.10.10 |
Comments