在 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 次浏览

开启您的 职业生涯

完成课程,获得认证

开始使用
广告