1

配列自体に作用するか、新しい配列を返すループを使用して、配列を効率的にスクロールするにはどうすればよいですか?

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

私はこのようなことをしたい:

arr.scroll(-2)

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

1 に答える 1

4

使用Array.slice

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

次に、それを一般化して、次の関数で拡張できます。Array.prototypescroll

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

> arr.scroll(-2);
[4, 5, 1, 2, 3]
于 2012-09-12T00:20:20.750 に答える