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 ]