Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การหาการหมุนของอาร์เรย์ใน JavaScript


เราต้องเขียนฟังก์ชัน 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
]