20、旋转数组

  • 截取拼接
function rotate(k){
    //参数处理
    if(k<0 || k === 0 || k === this.length){return this;}
    if(k > this.length){k = k%this.length}
    //旋转数组
  //return arr.slice(-k).concat(arr.slice(0,arr.length-k))        //方法一:slice(-k)从后面取k个
  //return [...this.splice(arr.length-k),...this]        //方法二:splice会改变原数组,并返回截取的数组
  //new Array(3).fill('').forEach(()=>{this.unshift(this.pop())})        //方法三变式

  for(let i = 0;i < k;i++){                //方法三:从后面一个一个拿,放到最前面
    this.unshift(this.pop())
  }
  return this;

}
Array.prototype.rotate = rotate;

results matching ""

    No results matching ""