Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm vòng quay (rotation) của mảng - JavaScript


Chúng ta cần viết hàm nhận vào mảng và số n. Hàm xoay mảng n phần tử: lấy n phần tử từ đầu đưa về cuối.

Điều kiện: không dùng bộ nhớ thêm.

Ví dụ:

Mảng đầu vào:

const arr = [12, 6, 43, 5, 7, 2, 5];

n = 3, kết quả:

const output = [5, 7, 2, 5, 12, 6, 43];

Ví dụ

Dưới đây là đoạn code:

const arr = [12, 6, 43, 5, 7, 2, 5]; 
const num = 5; 
const rotateByOne = arr => { 
  for(let i = 0; i < arr.length-1; i++){ 
    temp = arr[i]; 
    arr[i] = arr[i+1]; 
    arr[i+1] = temp; 
  }; 
} 
Array.prototype.rotateBy = function(n){ 
  const { length: l } = this; 
  if(n >= l){ 
    return; 
  }; 
  for(let i = 0; i < n; i++){ 
    rotateByOne(this); 
  }; 
}; 
arr.rotateBy(num); 
console.log(arr);

Kết quả

Đoạn code sẽ in ra console:

[ 
  2, 5, 12, 6, 
  43, 5, 
  7 
]