(JavaScript) map / filter / reduce

김정욱·2020년 9월 14일
1

JavaScript

목록 보기
5/10

map / forEach()


객체나 배열의 모든 요소들을 순차적으로 순회


map(콜백함수, thisArg)

  • 콜백함수(element, index, array) : return 조건
    -element : 현재 값
    -index : 현재 인덱스
    -array: 객체
  • thisArg : filter에서 사용될 this 객체(없으면 undefined)

[사용] - Array

 let arr = [1,3,5,7,9];
 arr.map(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능!
   console.log(e); // 1 3 5 7 9 
 });

아래는 화살표 함수 적용

 let arr = [1,3,5,7,9];
 let new_arr = arr.map((e,i,a) => console.log(e));
               // 매개변수 위치만 같으면 사용 가능!

[사용] - JSON

 let ob = [
   {
     name: "abc", password: "1234", number: 1  
   },
   {
     name: "def", password: "5678", number: 5
   }
 ];
ob.map(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능!
   console.log(e.name, e.number); /* abc 1
                                     def 5 */                });

  • map 과 forEach() 의 차이!

    : map은 새로운 배열이나 객체로 반환(return) 하지만,
      forEach()는 반환하지 않는다. (콜백함수만 실행)

filter


순회하며 조건을 통해 요소를 걸러내어 새로운 값을 반환.


filter(콜백함수, thisArg)

  • 콜백함수(element, index, array) : return 조건
    -element : 현재 값
    -index : 현재 인덱스
    -array : 객체
  • thisArg : filter에서 사용될 this 객체(없으면 undefined)

[사용] - Array

 let arr = [1,3,5,7,9];
 let new_arr = arr.filter(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능!
   return e>4;
 });
 console.log(new_arr); // 5 7 9 

아래는 화살표 함수 적용

 let arr = [1,3,5,7,9];
 let new_arr = arr.filter((e,i,a) => e>4);
               // 매개변수 위치만 같으면 사용 가능!
 console.log(new_arr); // 5 7 9 

[사용] - JSON

 let ob = [
   {
     name: "abc", password: "1234", number: 1  
   },
   {
     name: "def", password: "5678", number: 5
   }
 ];
 let new_ob = ob.filter(function(e,i,a){ // 매개변수 위치만 같으면 사용 가능!
   return e.number>3;
 });
 console.log(new_ob); /* name : def
                          password : 5678,
                          number : 5    */

아래는 화살표 함수 적용

 let ob = [
   {
     name: "abc", password: "1234", number: 1  
   },
   {
     name: "def", password: "5678", number: 5
   }
 ];
 let new_ob = ob.filter((e,i,a)=> e.number>3 );
                        // 매개변수 위치만 같으면 사용 가능!
 console.log(new_ob); /* name : def
                          password : 5678,
                          number : 5    */

reduce


콜백함수의 첫번째 매개변수인 acc를 중심으로 요소들을 순회 하며 로직 수행


reduce(콜백함수, initValue)

  • 콜백함수(accumulator,element, index, array) : return 조건
    -accumulator : 누적 값
    -element : 현재 값
    -index : 현재 인덱스
    -array : 객체
  • initValue : 초기 값 (디폴트는 0)

[사용] - Array

 let arr = [1,3,5,7,9];
 let sum = arr.reduce(function(acc,e,i,a){
    return acc+e;
 },0);
 console.log(sum); // 25

아래는 화살표 함수 적용

 let arr = [1,3,5,7,9];
 let sum = arr.reduce((acc,e,i,a) => (acc+e));
 console.log(sum); // 25

[사용] - JSON

 let ob = [
   {
     name: "abc", password: "1234", number: 1  
   },
   {
     name: "def", password: "5678", number: 5
   }
 ];
 let sum_number = ob.reduce(function(acc,e,i,a){ 
   return acc.number+e.number;
 });
 console.log(sum_number); 

아래는 화살표 함수 적용

 let ob = [
   {
     name: "abc", password: "1234", number: 1  
   },
   {
     name: "def", password: "5678", number: 5
   }
 ];
 let sum_number = ob.reduce((acc,e,i,a)=> (acc.number+e.number) );
 console.log(sum_number); 
profile
Developer & PhotoGrapher

0개의 댓글