回文数组(Rotate Array (JS))

时间:2023-03-10 07:03:29
回文数组(Rotate Array (JS))

旋转一个数组。

function rotate(array,n){
var l =array.length,a=array.map(function(x){return x}),arr=[];
n=n-Math.floor(n/l)*l;
for(var i=0;i<l;i++){
if((i+n)<l&&(i+n)>=0){
arr[i+n]=a[i];
}
else if((i+n)>=l){
arr[i+n-l]=a[i];
}
else if((i+n)<0){
arr[l+i+n]=a[i];
}
}
return arr;
}

不提后面的遍历,只说那个n=n-Math.floor(n/l)*l;

我就醉了。

solution 主要是用了slice这个方法。

function rotate(array, n) {
n = n % array.length
return array.slice(-n).concat(array.slice(0, -n))
}