# Coding for Scrubs: Moving Zeros to The End (JS)

Welcome back to Coding for Scrubs! Today we will be talking about how to search through an array of numbers and move all the 0s to the end of our array. This is a fairly simple problem, but fun to do! This challenge is an easy level whiteboarding problem that I found on Leetcode.

# Problem :

Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements.

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

Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.

# Pseudocode:

`1. Create a for loop that will iterate through our given array2. We want to start our iteration at the end of the array and make our way backwards3. If a number is equal to 0, we would then want to use push() to push it to the end4. We would want to use the splice() to move that 0 and update its index number5. Return the array!`

# Writing the Function:

Let’s go ahead and create our function and call it `moveZerosToEnd` and pass in an `arr` (array) as our argument.

`function moveZerosToEnd(arr){}`

We know we have to iterate through our array of numbers, so we begin to write our `for loop`. In our for loop, we want to start at the end of the array and make our way backward. We have to set `i` to start at the end of our array, hence `arr.length-1`.

Note: Indexes start at 0 and that’s why we have to subtract 1!

`function moveZerosToEnd(arr){   for(let i = arr.length-1; i>=0; i--){   }}`

Time for our conditional statement! If the number in our `arr` is equal to 0, we want to then push that 0 to the end of our array. We would also want to use `splice()` to replace the number in that array to carry a new index number.

`function moveZerosToEnd(arr) {   for(let i= arr.length-1; i>=0; i--){      if(arr[i]===0){         arr.push(0)          arr.splice(i,1)      }   }}`

Lastly, we have to return our new `arr`!

# Conclusion:

`function moveZerosToEnd(arr) {   for(let i= arr.length-1; i>=0; i--){      if(arr[i]===0){         arr.push(0)          arr.splice(i,1)      }   }   return arr}console.log(moveZerosToEnd([0,3,2,4,0,1,0]))`

Software Engineer in the making.

## More from Aymes S.

Software Engineer in the making.