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

JavaScript에서 0을 목록 끝으로 이동하는 내부 알고리즘

<시간/>

정수 배열이 주어졌다고 가정해 봅시다. 목록을 제자리에서 수정하여 배열 뒤에 모든 0을 넣는 함수를 작성해야 합니다.

함수는 다른 요소의 상대적 순서가 동일하게 유지되는 방식으로 이 작업을 수행해야 합니다.

예를 들어 -

입력 배열이 -

인 경우
const arr = [0, 11, 0, 22, 67];

그런 다음 배열을 -

로 수정해야 합니다.
const output = [11, 22, 67, 0, 0];

예시

다음은 코드입니다 -

const arr = [0, 11, 0, 22, 67];
const moveZeroToEnd = (arr = []) => {
   const swap = (array, ind1, ind2) => {
      const temp = array[ind1];
      array[ind1] = array[ind2];
      array[ind2] = temp;
   };
   let j = 0;
   for (let i = 0; i < arr.length; ++ i) {
      if (arr[i] !== 0) {
         swap(arr, i, j++);
      }
   }
   while (j < arr.length) {
      arr[j++] = 0;
   };
};
moveZeroToEnd(arr);
console.log(arr);

출력

다음은 콘솔 출력입니다 -

[11, 22, 67, 0, 0]