소개
이 랩에서는 JavaScript 의 Juxtapose Functions (병치 함수) 개념을 탐구합니다. 여러 함수를 인수로 받아 동일한 인자 집합에 해당 함수들을 적용하고 결과 배열을 반환하는 새로운 함수를 생성하는 방법을 배웁니다. 이 랩을 마치면 Juxtapose Functions 을 사용하여 코드를 단순화하고 효율성을 높이는 방법에 대한 이해가 깊어질 것입니다.
Juxtapose Functions (병치 함수) 설명
juxt 함수를 사용하려면 먼저 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다. juxt 함수는 여러 함수를 인수로 받아 해당 함수들의 병치 (juxtaposition) 인 함수를 반환합니다.
juxt 함수를 생성하려면 Array.prototype.map()을 사용하여 가변 개수의 args를 받을 수 있는 fn을 반환합니다. fn이 호출되면 각 fn을 args에 적용한 결과를 포함하는 배열을 반환해야 합니다.
다음은 juxt 함수의 예시 구현입니다.
const juxt =
(...fns) =>
(...args) =>
[...fns].map((fn) => [...args].map(fn));
juxt 함수를 정의했으면, 원하는 수의 함수를 인수로 전달한 다음, 해당 함수에 전달할 인수를 원하는 수만큼 전달하여 사용할 수 있습니다.
다음은 juxt 함수 사용의 몇 가지 예입니다.
juxt(
(x) => x + 1,
(x) => x - 1,
(x) => x * 10
)(1, 2, 3); // [[2, 3, 4], [0, 1, 2], [10, 20, 30]]
juxt(
(s) => s.length,
(s) => s.split(" ").join("-")
)("happy coding"); // [[18], ['happy-coding']]
첫 번째 예에서 juxt 함수는 세 개의 함수를 인수로 받아 새로운 함수를 반환합니다. 해당 새로운 함수가 인수 1, 2, 3으로 호출되면 세 함수 각각을 해당 인수에 적용하고 결과를 포함하는 배열의 배열을 반환합니다.
두 번째 예에서 juxt 함수는 두 개의 함수를 인수로 받아 새로운 함수를 반환합니다. 해당 새로운 함수가 인수 'happy-coding'으로 호출되면 두 함수 각각을 해당 인수에 적용하고 결과를 포함하는 배열의 배열을 반환합니다.
요약
축하합니다! Juxtapose Functions 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.