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

JavaScript의 값과 홀수 짝수 인덱스 일치

<시간/>

숫자 배열을 받는 JavaScript 함수를 작성해야 합니다. 함수에 대한 입력으로 주어진 배열에는 두 가지 특별한 속성이 있습니다 -

  • 배열의 길이는 항상 짝수입니다.

  • 배열의 짝수 개수와 홀수 개수는 항상 동일합니다(즉, 둘 다 배열 길이의 절반과 같음)

함수는 모든 짝수 값이 짝수 인덱스를 차지하고 모든 홀수 값이 홀수 인덱스를 차지하도록 배열의 요소를 섞어야 합니다.

이 문제에 대한 올바른 솔루션이 두 개 이상 있을 수 있으므로 그 중 하나를 찾아야 합니다.

예시

다음은 코드입니다 -

const arr = [1, 2, 3, 4, 5, 6];
const arrangeToIndices = (arr = []) => {
   let [even, odd] = [0, 1];
   while (even < arr.length && odd < arr.length) {
      if (arr[even] % 2 === 1 && arr[odd] % 2 === 0) {
         [arr[even], arr[odd]] = [arr[odd], arr[even]];
         [even, odd] = [even + 2, odd + 2];
      } else {
         if (0 === arr[even] % 2){
            even += 2;
         };
         if (1 === arr[odd] % 2){
            odd += 2
         };
      };
   };
   return arr;
};
console.log(arrangeToIndices(arr));

출력

다음은 콘솔 출력입니다 -

[ 2, 1, 4, 3, 6, 5 ]