## Related Articles

• Write an Interview Experience

# How to move specified number of elements to the end of an array in JavaScript ?

• Last Updated : 09 Apr, 2021

Given an array of length say N, move some specified amount of elements say X to the end of the given array.

Input:

arr = [1, 2, 3, 4, 5]
X = 2

Output: The following array should be the output as the first two numbers are moved to the end of the array.

[3, 4, 5, 1, 2]

Approach 1:

• First, we will extract first X elements from the array into a new array arr1.
• Then extract the last (N-X) elements from the array into a new array arr2.
• Then concatenate arr1 after arr2 to get the resulting array.

JavaScript code:

## Javascript

 function moveElementsToEndOfArray(arr, x) {      // arr is the input array    // x is the no. of elements that     // needs to be moved to end of     // the array      let n = arr.length;      // if x is greater than length     // of the array    x = x % n;      let first_x_elements = arr.slice(0, x);      let remaining_elements = arr.slice(x, n);      // Destructuring to create the desired array    arr = [...remaining_elements, ...first_x_elements];      console.log(arr);}  let arr = [1, 2, 3, 4, 5, 6];let k = 5;moveElementsToEndOfArray(arr, k);

Output:

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

Approach 2:

• Run a for loop from index i = 0 till X-1
• In each iteration take the element at current index and append it at the end of the array.
• After the iteration is complete, use the JavaScript splice() method to remove first X elements from the array to get the resultant array.

JavaScript code:

## Javascript

 function moveElementsToEndOfArray(arr, x) {      // Array is [1, 2, 3, 4, 5] and x = 2    // final output would be [3, 4, 5, 1, 2]    x = x % (arr.length);      for (let i = 0; i < x; i++) {        arr.push(arr[i]);    }      // After this loop array will     // be [1, 2, 3, 4, 5, 1, 2]    arr.splice(0, x);      // Splice method will remove first    // x = 2 elements from the array    // so array will be [3, 4, 5, 1, 2]      console.log(arr);}  let arr = [1, 2, 3, 4, 5];let k = 2;moveElementsToEndOfArray(arr, k);

Output:

[ 3, 4, 5, 1, 2 ]

My Personal Notes arrow_drop_up