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;