반복하다, 반복하다, 반복하다

2702 단어 functionaljavascript
본론으로 들어가 여기서 우리가 무엇을 하려는지 살펴보겠습니다. 모든 요소가 이전 요소에 함수를 적용하여 얻어지도록 주어진 크기의 배열을 뱉을 수 있는 함수를 작성해야 합니다.

초기 요소x와 함수f를 고려해 보겠습니다. 필요한 것은 다음과 같은 배열입니다.

[x, f(x), f(f(x)), ...]

음, 그러한 함수의 가장 간단한 적용은 , 2의 제곱: 1 ,2, 4, 8 ..과 같은 일련의 숫자를 만드는 것입니다.

이제 이러한 함수를 작성하는 방법을 살펴보겠습니다.

function iterate(fn, ele, n) {
  if (n === 0) return [];
  return [ele, ...iterate(fn, fn(ele), n - 1)];
}

우리의 함수 iteratefn 에서 ele 까지의 반복 적용 목록을 반환하고 n 번 반복합니다.
몇 가지 예를 시도해 보겠습니다.



함수 반복(fn, ele, iterationCount) {
if (반복 횟수 === 0) 반환 [];
return [ele, ...iterate(fn, fn(ele), iterationCount - 1)];
}




상수 곱하기 = (x) => (y) => x * y;
console.log(반복(곱하기(2), 1, 5));




초기 항목과 적용하는 기능은 생각할 수 있는 모든 것이 될 수 있습니다. 더미 제품 목록을 쉽게 만들 수 있습니다. 예를 살펴보세요.



함수 반복(fn, ele, iterationCount) {
if (반복 횟수 === 0) 반환 [];
return [ele, ...iterate(fn, fn(ele), iterationCount - 1)];
}





const initialProduct = { id: 100, 슬러그: `prd${100}`, 이름: `Product-${100}` };

const createNextProduct = (제품) => {
const nextProductId = product.id + 1;
반품 {
아이디: nextProductId,
슬러그: `prd${nextProductId}`,
이름: `제품-${nextProductId}`,
};
};
console.log(반복(createNextProduct, initialProduct, 5));

좋은 웹페이지 즐겨찾기