将数组中的项移动到另一个数组

时间:2012-11-13 10:34:19

标签: ruby

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

4 个答案:

答案 0 :(得分:9)

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

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

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

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

delete_at方法对您的情况可能更好,但是,您知道,知道替代方案很好:)

答案 1 :(得分:4)

是的,它看起来像这样:

y.push x.delete_at(1)

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

答案 2 :(得分:4)

是。对于特定元素:

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

对于特定索引:

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

这种东西是well documented,顺便说一句。

答案 3 :(得分:2)

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

按索引删除:

y << x.delete_at(1)

按对象删除:

y << x.delete('b')