Code Kata #8

문제

주어진 숫자 배열에서, 0을 배열의 마지막쪽으로 이동시켜주세요.원래 있던 숫자의 순서는 바꾸지 말아주세요. (새로운 배열을 생성해서는 안 됩니다.)

Input: [0,1,0,3,12]
Output: [1,3,12,0,0]

해결

  1. filter 를 두번 써서 0이 없는 변수, 0만 있는 변수를 선언한다.
  2. concat 을 이용하여 두 값을 더한다.
const moveZeroes = nums => {
  const removeZero = (x) => { return x !== 0; }
  const notZero = nums.filter(removeZero);
  
  const findZero = (y) => { return y === 0; }
  const zero = nums.filter(findZero);
  
  const lastZero = notZero.concat(zero);
  
  nums = lastZero;
  
  return nums
}

핵심 개념

  1. filter
  2. concat, spread

좋은 웹페이지 즐겨찾기