소개
이 랩에서는 JavaScript 의 unfold() 함수를 탐구해 보겠습니다. 이 함수를 사용하면 초기 시드 값으로 반복적으로 이터레이터 함수를 호출하여 함수가 false를 반환할 때까지 배열을 생성할 수 있습니다. 이 랩을 통해 unfold() 함수를 사용하는 방법과 특정 프로그래밍 작업을 단순화하는 데 어떻게 사용될 수 있는지 배우게 됩니다.
Unfold 배열
이터레이터 함수와 초기 시드 값 (seed value) 을 사용하여 배열을 생성하려면 다음 단계를 따르세요.
- 터미널/SSH 를 열고
node를 입력하여 코딩 연습을 시작합니다. while루프와Array.prototype.push()를 사용하여 이터레이터 함수를false를 반환할 때까지 반복적으로 호출합니다.- 이터레이터 함수는 하나의 인자 (
seed) 를 받아들이고 항상 두 개의 요소 ([value,nextSeed]) 또는 종료를 위한false를 반환해야 합니다.
unfold 함수를 구현하려면 다음 코드를 사용하세요.
const unfold = (fn, seed) => {
let result = [],
val = [null, seed];
while ((val = fn(val[1]))) result.push(val[0]);
return result;
};
unfold 함수를 사용하는 방법의 예는 다음과 같습니다.
var f = (n) => (n > 50 ? false : [-n, n + 10]);
unfold(f, 10); // [-10, -20, -30, -40, -50]
이렇게 하면 초기 시드 값 10부터 시작하여 이터레이터 함수 f에 의해 생성된 값으로 배열이 생성됩니다. 이터레이터 함수는 각 단계에서 두 개의 요소로 구성된 배열을 생성합니다. 즉, 현재 시드 값의 음수와 10 씩 증가하는 다음 시드 값입니다. 이 프로세스는 시드 값이 50 보다 커질 때까지 계속되며, 이 시점에서 함수는 false를 반환합니다.
요약
축하합니다! Unfold Array 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.