4

假设我们有数组x = ['a', 'b', 'c']y. 有没有一种简单的方法可以将 , 的第二个元素移动xy?所以最后,x['a', 'c']y['b']

4

4 回答 4

9

此示例的特殊代码。它可能不适用于您的其他阵列。与其实际移动元素,不如将旧数组拆开并构造两个新数组。

x = ['a', 'b', 'c']

x, y = x.partition {|i| i != 'b'}

x # => ["a", "c"]
y # => ["b"]

delete_at方法可能更适合您的情况,但是,您知道,了解替代方法是件好事 :)

于 2012-11-13T10:43:42.877 回答
4

是的,它看起来像这样:

y.push x.delete_at(1)

delete_at将从调用它的数组中删除具有给定索引的元素并返回该对象

于 2012-11-13T10:42:03.240 回答
4

是的。对于特定元素:

y = []
y << x.delete('b')

对于特定索引:

y = []
y << x.delete_at(1)

这种东西有据可查,顺便说一句。

于 2012-11-13T10:42:12.260 回答
2
x = ['a', 'b', 'c']
y = []

按索引删除:

y << x.delete_at(1)

按对象删除:

y << x.delete('b')
于 2012-11-13T10:42:46.753 回答