Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng và một số n.
Hàm của chúng ta nên xoay mảng theo n phần tử, tức là lấy n phần tử từ phía trước và đặt chúng ở cuối.
Điều kiện duy nhất ở đây là chúng ta phải làm điều này mà không sử dụng thêm dung lượng trong bộ nhớ -
Ví dụ -
Nếu mảng đầu vào là mảng sau,
const arr = [12, 6, 43, 5, 7, 2, 5];
và số n là 3, thì đầu ra phải là;
const output = [5, 7, 2, 5, 12, 6, 43];
Ví dụ
Sau đây là mã -
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);
Đầu ra
Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -
[ 2, 5, 12, 6, 43, 5, 7 ]