첫 번째이자 유일한 인수로 리터럴 배열을 취하는 JavaScript 함수를 작성해야 합니다.
우리 함수는 연속된 짝수 인덱스를 서로 교환하고 연속되는 홀수 인덱스를 서로 교환해야 합니다.
함수는 제자리에서 이러한 스와핑을 수행해야 합니다.
예를 들어 -
입력 배열이 -
인 경우const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];
그러면 배열은 -
가 되어야 합니다.const output = [2, 3, 0, 1, 6, 7, 4, 5, 8];
0과 2가 바뀌고, 1과 3이 바뀌고, 4와 6이 바뀌고, 5와 7이 바뀌고, 마지막으로 8이 그대로 유지되기 때문입니다.
예시
다음은 코드입니다 -
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8]; const swapPairs = (arr = []) => { const swap = (array, ind1, ind2) => { const temp = array[ind1]; arr[ind1] = arr[ind2]; arr[ind2] = temp; }; let i = 0; for(; i + 3 < arr.length; i += 4){ swap(arr, i, i + 2); swap(arr, i + 1, i + 3); }; if (i + 2 < arr.length){ swap(arr, i, i + 2); }; }; swapPairs(arr); console.log(arr);
출력
다음은 콘솔 출력입니다 -
[ 2, 3, 0, 1, 6, 7, 4, 5, 8 ]