Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 배열의 앞·뒤 k번째 요소 서로 교체하기

이번 글에서는 숫자 배열과 하나의 숫자 k(k는 배열의 길이보다 작거나 같아야 함)를 인자로 받는 JavaScript 함수를 작성해 보겠습니다.

이 함수의 역할은 배열의 앞에서부터 k번째 요소뒤에서부터 k번째 요소를 서로 맞바꾸는 것입니다.

동작 원리

배열의 길이를 l이라고 할 때, 배열 인덱스는 0부터 시작하므로 다음과 같이 정리할 수 있습니다.

  • 앞에서 k번째 요소의 인덱스: k - 1
  • 뒤에서 k번째 요소의 인덱스: l - k

임시 변수(temp)를 활용해 두 위치의 값을 안전하게 교환하면 됩니다.

예제 코드

다음은 해당 기능을 구현한 코드입니다 −

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const swapKth = (arr, k) => {
   const { length: l } = arr;
   let temp;
   const ind = k-1;
   temp = arr[ind];
   arr[ind] = arr[l-k];
   arr[l-k] = temp;
};
swapKth(arr, 4);
console.log(arr);
swapKth(arr, 8);
console.log(arr);

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다 −

[
   0, 1, 2, 6, 4,
   5, 3, 7, 8, 9
]
[
   0, 1, 7, 6, 4,
   5, 3, 2, 8, 9
]

위 실행 예제에서 k가 4일 때는 값 3(인덱스 3)과 값 6(인덱스 6)이 서로 교체되었고, 이어서 k가 8로 호출되면 값 2(인덱스 7)와 값 7(인덱스 2)이 교체된 것을 확인할 수 있습니다.