在 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
]


更新日期: 30-9 月-2020

130 次瀏覽

開啟您的 職業生涯

完成課程,獲得認證

開始使用
廣告
© . All rights reserved.