如何使用循环来有效地滚动数组,无论是作用于数组本身还是返回新数组
arr = [1,2,3,4,5]
我想做这样的事情:
arr.scroll(-2)
arr now is [4,5,1,2,3]
答案 0 :(得分:4)
使用Array.slice
:
> arr.slice(-2).concat(arr.slice(0, -2));
[4, 5, 1, 2, 3]
您can然后对其进行概括,并使用Array.prototype
函数扩展scroll
:
Array.prototype.scroll = function (shift) {
return this.slice(shift).concat(this.slice(0, shift));
};
> arr.scroll(-2);
[4, 5, 1, 2, 3]