Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

재귀를 사용하여 배열의 모든 위치에 요소를 삽입하는 방법 - JavaScript?

<시간/>

함수를 선언해야 합니다. 예를 들어 insertAllPositions는 두 개의 인수를 취합니다 -

요소 x 및 배열 arr. 함수는 가능한 위치에 x가 삽입된 arr에 해당하는 각 배열과 함께 배열의 배열을 반환해야 합니다.

즉, arr이 길이 N이면 결과는 N + 1개의 배열 -

이 있는 배열입니다.

예를 들어, insertAllPositions(10, [1,2,3])의 결과는 -

여야 합니다.
상수 출력 =[ [10,1,2,3], [1,10,2,3], [1,2,10,3], [1,2,3,10]]; 

이 함수는 순전히 재귀를 사용하여 작성해야 합니다.

예시

다음은 코드입니다 -

const arr =[1, 2, 3];const num =10;const insertAllPositions =(num, arr) => { return arr.length ? [[num, ...arr]] .concat(insertAllPositions(num, arr.slice(1)) .map(el => { return [arr[0]].concat(el); })) :[[ num]]};console.log(insertAllPositions(num, arr));

출력

이것은 콘솔에 다음과 같은 출력을 생성합니다 -

[ [ 10, 1, 2, 3 ], [ 1, 10, 2, 3 ], [ 1, 2, 10, 3 ], [ 1, 2, 3, 10 ] ]