자바스크립트에서 Currying을 사용하여 함수의 실행 결과를 어떻게 필터링할 수 있나요?
함수의 실행 결과를 필터링하려면 Currying을 사용하여 인자를 받은 후 일부 로직을 활용하여 원하는 결과를 얻을 수 있습니다. 예를 들어, 다음과 같은 Currying 함수를 작성해보겠습니다.
function filterByValue(value) {
return function (array) {
return array.filter(item => item === value);
};
}
위의 코드에서 filterByValue
함수는 value
를 인자로 받는 함수를 반환합니다. 반환된 함수는 array
를 인자로 받아 value
와 동일한 값을 가진 요소들만 필터링하여 반환합니다.
이제 아래 예제를 통해 filterByValue
함수를 사용하는 방법을 알아보겠습니다.
const numbers = [1, 2, 3, 4, 5];
const filterWithValue = filterByValue(3);
const filteredArray = filterWithValue(numbers);
console.log(filteredArray); // [3]
위의 예제에서 filterByValue
함수에 value
로 3을 전달하여 filterWithValue
함수를 반환받았습니다. 그리고 filterWithValue
함수에 numbers
배열을 인자로 전달하여 filteredArray
를 얻었습니다. filteredArray
는 3과 동일한 값을 가진 [3]
배열이 됩니다.
Currying을 사용하면 함수의 실행 결과를 필터링하거나 다른 로직을 적용하는 등의 유연한 동작을 구현할 수 있습니다.