메소드 보충

김예지·2021년 8월 25일
0
<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script> 
    a=[10, 11, 12, 13, 14, 15];

    //forEach 메소드: for문 대체 메소드
    //forEach의 매개변수: (1:값, 2:인덱스, 3:)
    //배열 요소를 하나씩 탐색하면서 콜백함수 호출
    console.log('forEach 메소드')
    a.forEach(function(value, index){
      console.log(value, index, this)
    }, [1, 2]); 

    //map 메소드: 새로운 배열을 생성한다. 단, 원본배열과 길이는 동일하다(조건이 참이 아니더라도 undefined를 리턴함)
    //콜백함수가 생성한 값을 새로운 배열로 생성 후 리턴함
    console.log('map 메소드')
    let answer_map=a.map(function(v, i){
      if(v%2==0) return v;
    }, [1, 2]);
    console.log(answer_map); 
    
    //v: value, i:index
    let answer_map2=a.map(function(v, i){
      return v*i;
    }, [1, 2]);
    console.log(answer_map2); 

    //filter 메소드: 조건에 맞는 값만 새로운 배열의 원소로 생성한다.(map과 다른점)
    //filter은 원하는 값만 필터링
    console.log('filter 메소드');
    let answer_filter=a.filter(function(v, i){
      if(v%2==0) return v;
    }, [1, 2]);
    console.log(answer_filter); 

    //reduce 메소드: 누적
    console.log('reduce 메소드');
    let answer_reduce=a.reduce(function(acc, v){
      return acc+v; //0+10, 0+11, 0+12, 0+13, 0+14, 0+15
    }, 0); //두번째 인자인 0은 acc의 초깃값 
    console.log(answer_reduce); 
  </script>
</body>
</html>


profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

1개의 댓글

comment-user-thumbnail
2021년 9월 11일

9/10

답글 달기