เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์และตัวเลข n
ฟังก์ชันของเราควรหมุนอาร์เรย์ด้วยองค์ประกอบ n รายการ นั่นคือ นำองค์ประกอบ n รายการจากด้านหน้าและวางไว้ที่ส่วนท้าย
เงื่อนไขเดียวที่นี่คือเราต้องทำเช่นนี้โดยไม่ใช้พื้นที่เพิ่มเติมในหน่วยความจำ -
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตมีดังต่อไปนี้
const arr = [12, 6, 43, 5, 7, 2, 5];
และหมายเลข n คือ 3 ดังนั้นผลลัพธ์ควรเป็น
const output = [5, 7, 2, 5, 12, 6, 43];
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
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);
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ในคอนโซล -
[ 2, 5, 12, 6, 43, 5, 7 ]