자바스크립트에서 Currying을 사용하여 함수의 파라미터를 어떻게 필터링할 수 있나요?

다음은 Currying을 사용하여 파라미터를 필터링하는 예시입니다:

function filterByValue(value) {
  return function(array) {
    return array.filter(item => item === value);
  }
}

const filterByValue3 = filterByValue(3);
console.log(filterByValue3([1, 2, 3, 4, 5])); // [3]

const filterByValueTrue = filterByValue(true);
console.log(filterByValueTrue([true, false, true, false])); // [true, true]

위 예시에서 filterByValue 함수는 값을 인수로 받아 해당 값을 가지고 있는 배열을 필터링하는 새로운 함수를 반환합니다. 반환된 함수는 배열을 인수로 받으며, filter 메소드를 사용하여 배열을 필터링합니다.

Currying을 사용하면 동일한 로직을 가지고 있는 함수를 재사용할 수 있으며, 각각 다른 파라미터로 호출하여 사용할 수 있습니다. 함수를 여러 단계로 나누고 부분 적용할 수 있어 유연한 코드 작성이 가능해집니다.

이러한 Currying을 사용하면 필터링 뿐만 아니라 여러 다른 로직에서도 유용하게 활용할 수 있습니다. 다양한 상황에 따라 Currying을 사용하여 파라미터를 조작하고 필터링하는 함수를 생성할 수 있습니다.

#JavaScript #Currying