2

私が持っていると言う...

arr = ["a", "b", "c"]

...そして、「a」を「b」と「c」の間に移動したい。私は現在

arr.delete("a")
arr.insert(2, "a")

1回の手術でできますか?

ありがとう

4

5 に答える 5

3

並列割り当てを使用できます。

arr[0], arr[1] = arr[1], arr[0]
=> ["b", "a"]
arr
=> ["b", "a", "c"]
于 2013-04-23T14:20:46.090 に答える
2

繰り返す必要はありません"a"。それらを 1 つにまとめます。

arr.insert(2, arr.delete("a"))
于 2013-04-23T12:46:46.460 に答える
2

「a」を「b」と「c」の間に移動したい場合は、次のようにする必要があります。

arr.insert(1, arr.delete_at(0))

※配列に複数ある場合があるため、.delete_at代わりに使用してください。.delete'a'

于 2013-04-23T12:55:05.693 に答える
0

配列内のどこにあるかに関係なく、b の後に a を挿入します。

arr.insert(arr.index("b"), arr.delete_at(arr.index("a")))
=> ["b", "a", "c"]

次のこともできます。

 arr[arr.index("a")], arr[arr.index("b")] = "b","a"
于 2013-04-23T13:18:05.840 に答える
0

使用するArray#shuffle!

arr = [ "a","b","c" ] 
arr.shuffle! until arr[1] == 'a' && arr[0]=='b'
p arr #=> ["b", "a", "c"]
于 2013-04-23T13:04:53.613 に答える