Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

Array Rotation Techniques in DSA Javascript - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to rotate the array to the right by one position.

DSA Javascript
function rotateRightByOne(arr) {
  const last = arr.pop();
  arr.[1](last);
  return arr;
}

console.log(rotateRightByOne([1, 2, 3, 4]));
Drag options to blanks, or click blank then click option'
Apush
Bpop
Cshift
Dunshift
Attempts:
3 left
💡 Hint
Common Mistakes
Using push() adds the element to the end, leaving the array unchanged.
Using shift() or pop() removes elements from the wrong end.
2fill in blank
medium

Complete the code to rotate the array to the left by one position.

DSA Javascript
function rotateLeftByOne(arr) {
  const first = arr.[1]();
  arr.push(first);
  return arr;
}

console.log(rotateLeftByOne([1, 2, 3, 4]));
Drag options to blanks, or click blank then click option'
Ashift
Bpop
Cpush
Dunshift
Attempts:
3 left
💡 Hint
Common Mistakes
Using pop() removes the last element, not the first.
Using unshift() adds elements to the start, not removes.
3fill in blank
hard

Complete the code to rotate the array to the right by k positions.

DSA Javascript
function rotateRight(arr, k) {
  k = k % arr.length;
  const rotated = arr.slice(-k).concat(arr.[1](0, arr.length - k));
  return rotated;
}

console.log(rotateRight([1, 2, 3, 4, 5], 2));
Drag options to blanks, or click blank then click option'
Ashift
Bpop
Cslice
Dsplice
Attempts:
3 left
💡 Hint
Common Mistakes
Using splice() modifies the original array.
Using pop or shift removes only one element, not a range.
4fill in blank
hard

Fill both blanks to create a function that rotates the array to the left by k positions using slice and concat.

DSA Javascript
function rotateLeft(arr, k) {
  k = k % arr.length;
  return arr.[1](k).[2](arr.slice(0, k));
}

console.log(rotateLeft([10, 20, 30, 40, 50], 3));
Drag options to blanks, or click blank then click option'
Aslice
Bsplice
Cconcat
Dpush
Attempts:
3 left
💡 Hint
Common Mistakes
Using splice instead of slice changes the original array.
Using push instead of concat does not join arrays.
5fill in blank
hard

Fill all three blanks to implement an in-place rotation of the array to the right by k positions using reverse.

DSA Javascript
function reverse(arr, start, end) {
  while (start < end) {
    [arr[start], arr[end]] = [arr[end], arr[start]];
    start++;
    end--;
  }
}

function rotateRightInPlace(arr, k) {
  k = k % arr.length;
  reverse(arr, 0, arr.length - 1);
  reverse(arr, 0, [1]);
  reverse(arr, [2], [3]);
  return arr;
}

console.log(rotateRightInPlace([1, 2, 3, 4, 5, 6, 7], 3));
Drag options to blanks, or click blank then click option'
Ak - 1
Bk
Carr.length - k - 1
Darr.length - 1
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong indices causes incorrect rotation.
Not adjusting k with modulo can cause errors when k > arr.length.

Practice

(1/5)
1. What does rotating an array to the right by 1 position mean?
arr = [1, 2, 3, 4] rotated right by 1 becomes?
easy
A. [4, 1, 2, 3]
B. [2, 3, 4, 1]
C. [1, 2, 3, 4]
D. [3, 4, 1, 2]

Solution

  1. Step 1: Understand right rotation by 1

    Right rotation by 1 means the last element moves to the front, and others shift right.
  2. Step 2: Apply to given array

    Last element 4 moves to front, rest shift right: [4, 1, 2, 3].
  3. Final Answer:

    [4, 1, 2, 3] -> Option A
  4. Quick Check:

    Right rotate by 1 = last element front [OK]
Hint: Last element moves front on right rotation by 1 [OK]
Common Mistakes:
  • Confusing left and right rotation
  • Shifting elements left instead of right
  • Not moving last element to front
2. Which of the following is the correct JavaScript syntax to rotate an array arr to the left by 1 position?
easy
A. arr.unshift(arr.pop())
B. arr.push(arr.shift())
C. arr.pop(arr.unshift())
D. arr.shift(arr.push())

Solution

  1. Step 1: Understand left rotation by 1

    Left rotation by 1 means first element moves to the end.
  2. Step 2: Match syntax to operation

    arr.shift() removes first element, arr.push() adds it to end. So arr.push(arr.shift()) rotates left by 1.
  3. Final Answer:

    arr.push(arr.shift()) -> Option B
  4. Quick Check:

    Left rotate = shift then push [OK]
Hint: Left rotate = shift first, then push it back [OK]
Common Mistakes:
  • Using pop instead of shift for left rotation
  • Using unshift incorrectly
  • Mixing push and pop order
3. What is the output of the following code?
const arr = [10, 20, 30, 40, 50];
const k = 2;
const rotated = arr.slice(-k).concat(arr.slice(0, arr.length - k));
console.log(rotated);
medium
A. [40, 50, 10, 20, 30]
B. [30, 40, 50, 10, 20]
C. [50, 10, 20, 30, 40]
D. [20, 30, 40, 50, 10]

Solution

  1. Step 1: Understand slicing for right rotation by k=2

    arr.slice(-2) gets last 2 elements: [40, 50]. arr.slice(0, 3) gets first 3 elements: [10, 20, 30].
  2. Step 2: Concatenate slices

    Concatenate [40, 50] + [10, 20, 30] = [40, 50, 10, 20, 30].
  3. Final Answer:

    [40, 50, 10, 20, 30] -> Option A
  4. Quick Check:

    Right rotate by 2 = last 2 front [OK]
Hint: Right rotate by k = last k elements + rest [OK]
Common Mistakes:
  • Using slice(0, k) instead of slice(-k)
  • Concatenating in wrong order
  • Confusing left and right rotation
4. Find the error in this code that tries to rotate an array arr left by k positions:
function rotateLeft(arr, k) {
  for(let i = 0; i < k; i++) {
    arr.unshift(arr.shift());
  }
  return arr;
}
medium
A. Using unshift instead of push inside loop
B. Loop should run from i = 1 to k
C. No error, code works correctly
D. shift() removes last element, should use pop()

Solution

  1. Step 1: Analyze loop operation

    Inside loop, arr.shift() removes first element correctly for left rotation.
  2. Step 2: Check insertion method

    arr.unshift() adds element to front, which reverses the shift effect. It should be arr.push() to add at end.
  3. Final Answer:

    No error, code works correctly -> Option C
  4. Quick Check:

    Code rotates left by k positions correctly [OK]
Hint: Left rotate = shift then push, not unshift [OK]
Common Mistakes:
  • Using unshift instead of push
  • Confusing shift and pop
  • Incorrect loop range
5. Given an array arr = [1, 2, 3, 4, 5], how can you rotate it left by k = 7 positions efficiently without extra space?
hard
A. Rotate left by k positions using nested loops
B. Rotate left by k positions directly using slice and concat
C. Rotate right by k positions using pop and unshift
D. Rotate left by k % arr.length = 2 positions using reversal algorithm

Solution

  1. Step 1: Calculate effective rotation

    Since k=7 and arr.length=5, effective rotation is k % 5 = 2.
  2. Step 2: Use reversal algorithm for in-place rotation

    Reverse first 2 elements, reverse last 3 elements, then reverse whole array to rotate left by 2 efficiently without extra space.
  3. Final Answer:

    Rotate left by k % arr.length = 2 positions using reversal algorithm -> Option D
  4. Quick Check:

    Use k mod length and reversal for efficient rotation [OK]
Hint: Use k mod array length and reversal for efficient rotation [OK]
Common Mistakes:
  • Rotating by k without modulo causes extra rotations
  • Using slice creates extra space
  • Using nested loops is inefficient
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard