旋转一个数组。

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))
}