配列自体に作用するか、新しい配列を返すループを使用して、配列を効率的にスクロールするにはどうすればよいですか?
arr = [1,2,3,4,5]
私はこのようなことをしたい:
arr.scroll(-2)
arr now is [4,5,1,2,3]
配列自体に作用するか、新しい配列を返すループを使用して、配列を効率的にスクロールするにはどうすればよいですか?
arr = [1,2,3,4,5]
私はこのようなことをしたい:
arr.scroll(-2)
arr now is [4,5,1,2,3]
使用Array.slice
:
> arr.slice(-2).concat(arr.slice(0, -2));
[4, 5, 1, 2, 3]
次に、それを一般化して、次の関数で拡張できます。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]