19

この同じ配列の終わりまで配列の最初の要素を移動する最良の方法は何ですか?

すなわち:[a,b,c,d]

「何らかの操作」

結果:[b,c,d,a]

この「なんらかの操作」はどうあるべきか?

4

4 に答える 4

50

ありますArray#rotate

[a,b,c,d].rotate(1)
于 2013-06-29T10:51:39.940 に答える
4

はい、使用可能Array#shift

a = [1,2,7,4]
a << a.shift
a # => [2, 7, 4, 1]
于 2013-06-29T11:49:15.103 に答える
3

@sawa が言うように、 を使用しますrotate。他の/古い言語では、次のようにします。

ary.push(ary.shift)

または、配列を複数のステップで分割/スライスして何かを配線します。

上記は、配列の左シフトに役立ちます。方向を逆にすることは次のとおりです。

ary.unshift(ary.pop)

これは、バイナリレベルでのビット操作をシミュレートするために、上記と一緒に役立つ場合があります。

于 2013-06-29T15:09:25.350 に答える
1
    result=[a,b,c,d]
#first add first char at last in array
    result << result[0]
#remove first character from array
    result.shift 
于 2013-06-29T10:51:12.320 に答える