JavaScript에서 콜백 함수

함수는 다른 함수에 매개변수로 전달될 수 있습니다. 이러한 매개변수 함수를 콜백 (callback)이라고 합니다. 예제를 통해 그 사용법을 살펴봅시다.

첫 번째 매개변수로 배열을 받고, 두 번째 매개변수로 콜백을 받는 함수를 만들어 보겠습니다. 이 콜백은 배열의 각 요소에 적용될 것입니다:

javascriptfunction each(arr, callback) {
  // 여기에 코드 작성
}

이제 우리 함수의 구현을 작성해 보겠습니다:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // 콜백 함수 호출
  }
  
  return result;
}

우리의 each 함수는 범용적입니다. 이는 다양한 콜백을 전달하여 배열에 대해 다른 연산을 수행할 수 있음을 의미합니다. 이때 우리 함수의 코드는 변하지 않습니다 - 전달되는 콜백만 바뀔 뿐입니다.

예를 들어, 우리 함수를 사용하여 어떤 배열의 각 요소를 제곱해 봅시다. 이를 위해 해당 작업을 수행하는 콜백을 매개변수로 전달합니다:

javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
  return num ** 2;
});

console.log(result);

이번에는 배열 요소를 세제곱해 봅시다. 이를 위해 매개변수로 이 연산을 수행하는 다른 콜백을 전달합니다:

javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
  return num ** 3;
});

console.log(result);
Задание 1

숫자 배열이 주어졌습니다. 우리가 만든 each 함수를 사용하여 각 요소를 두 배로 늘리세요.

Задание 2

문자열 배열이 주어졌습니다. 우리가 만든 each 함수를 사용하여 각 문자열의 문자를 역순으로 뒤집으세요.

Задание 3

문자열 배열이 주어졌습니다. 우리가 만든 each 함수를 사용하여 각 문자열의 첫 번째 문자를 대문자로 만드세요.