2012-09-12 85 views
1

你如何有效地滾動使用循環無論是作用在陣列本身上或返回一個新的數組滾動數組與循環

arr = [1,2,3,4,5] 

我想要做的是這樣的一個數組:

arr.scroll(-2) 

arr now is [4,5,1,2,3] 

回答

4

使用Array.slice

> arr.slice(-2).concat(arr.slice(0, -2)); 
[4, 5, 1, 2, 3] 

can然後概括它,並延長Array.prototypescroll功能:

Array.prototype.scroll = ​function (shift) { 
    return this.slice(shift).concat(this.slice(0, shift)); 
}​; 

> arr.scroll(-2); 
[4, 5, 1, 2, 3] 
+0

是的,無需循環! – bfavaretto