1

リンクされたリストに似たものとして Ruby で配列を使用しています。したがってary = [1,2,3] 、ノードを挿入する必要がありary.insert(2,99)ます[1,2,99,3]

ここで質問: どうすれば逆にできますか?? ary.extract(2)配列を返し99、状態のままにする関数が存在することを望みます[1,2,3]

4

2 に答える 2

1

あなたはdelete_atのようなものですか?

1.9.3p125 :017 > ary = [1,2,3] 
 => [1, 2, 3] 
1.9.3p125 :018 > ary.insert(2,99)
 => [1, 2, 99, 3] 
1.9.3p125 :019 > ary.delete_at(2)
 => 99 
1.9.3p125 :020 > ary
 => [1, 2, 3] 
1.9.3p125 :021 > 

または、インデックスの代わりに値で移動したい場合は、deleteがあります:

1.9.3p125 :021 > ary = [1,2,3] 
 => [1, 2, 3] 
1.9.3p125 :022 > ary.insert(2,99)
 => [1, 2, 99, 3] 
1.9.3p125 :023 > ary.delete(99)
 => 99 
1.9.3p125 :024 > ary
 => [1, 2, 3] 

2 番目のバージョンの小さな落とし穴:重複がある場合、値のすべての出現を削除します。

于 2012-12-02T19:57:38.690 に答える
0

sliceトリックを行います:

a = [1,2,99,3]
v = a.slice! 2

p v
# => 99

p a
# => [1, 2, 3]
于 2012-12-02T19:55:15.447 に答える