JavaScript

[JavaScript] Callback function(콜백 함수), forEach, map, filter

SangRok Jung 2022. 4. 12. 10:10
반응형

 

Callback 함수

  • 함수의 레퍼런스 값을 파라미터로 전달하여 호출되는 함수.
  • 자바스크립트의 콜백함수는 엄밀한 콜백 함수는 아님.

 

 

 

 

 


 

 

 

 

콜백 함수의 응용

 

▶ forEach() 

배열의 요소의 갯수 만큼 순회한다.

<body> 
    <script>
        
        const callbackProc = function(value, index, array)
        {
            console.log('value' + value);
            console.log('index' + index);
            console.log('array' + array);
        }
        

        const values = [19, 20, 30, 40, 50];

        values.forEach(callbackProc); //array의 길이와 loop를 돈다.

    </script>
</body>

초기화 하지 않은 값은 반복 하지 않는다.

const arraySparse = [1,3,,7]

arraySparse.forEach(function(element){
  console.log(element)
})

// 1
// 3
// 7

 

예제

※ forEach와 callback함수로 2단 4단을 출력하시오.

<body> 
    <script>
    
        let ar = [1, 2, 3, 4, 5, 6, 7, 8, 9]  //object ar=참조값,reference address

        const cb = function(value, index)
        {
            console.log(`2 X ${value} = ${2 * value}`)
        }

        ar.forEach(cb); //배열 요소의 갯수만큼 호출

        console.log('--------------------------------')

        //함수를 바로 호출
        ar.forEach(function(value, index)
            {
                console.log(`4 X ${value} = ${4 * value}`)
            });

    </script>
</body>

 

 

 

 

 


 

 

 

 

 

▶ map()

호출한 결과를 모아 새로운 배열을 반환한다.

  • 만약 callback함수에서 리턴을 하지 않는다면 undefined 배열 생성.
  • 비파괴적 함수.
<body>
    <script>
        const ar = [1, 2, 3, 4, 5, 6, 7, 8]

        const cb = function(value)
        {
            return 10 + value;
        }

        let arr = ar.map(cb);

        console.log(arr);
    </script>
</body>

예제

 [‘홍길동, ‘세종대왕’, ‘김구‘, ‘안중근’] 배열의 각 요소에 훌륭한이라는 말머리를 붙이는 코드를 map()을 이용하여 작성하시오.

<body>
    <script>
        const name = ['홍길동', '세종대왕', '김구', '안중근'];
		
        let newName = name.map(function(value)
        {
            return '훌륭한' + value
        })

        console.log(newName)
        
    </script>
</body>

 

 

 

 

 

 

 


 

 

 

 

 

▶ filter()

주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.

 

예제

※ 임의의 숫자 10개가 있는 배열을 만들고 홀수만으로 새로운 배열을 만드는 코드를 filter()을 이용하여 작성하시오.

<body>
    <script>
        
        let ar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

        let newAr = ar.filter(function(value)
        {
            if (value % 2 !== 0)
            {
                return true
            }
        })

        console.log(newAr)
        
    </script>
</body>

 

 

 

 

 

반응형