将一个数组中的元素移到另一个数组中(Ruby)



我是新来的,新来的编码,我可以用一些帮助我试图解决的问题。我试图从数组中删除所有小于5的整数A =[1, 2, 3, 4, 5, 6]并将它们放入一个新的数组b =[],然后打印出b数组。我在谷歌上搜索了很多次,但找不到任何有用的东西。我开始觉得这是不可能的。

请帮忙!由于

a = [1, 2, 3, 4, 5, 6]
b, a = a.partition { |i| i < 5 }
#=> [[1, 2, 3, 4], [5, 6]]
b #=> [1, 2, 3, 4]
a #=> [5, 6]

看到可列举的#分区。

a = [1, 2, 3, 4, 5, 6]
b = a.select { |i| i < 5 } # [1, 2, 3, 4]
a = a - b # [5, 6]

要实际从a中删除元素,同时将它们放入现有的数组b中,您可以使用reject!:

a = [1, 2, 3, 4, 5, 6]
b = []
a.reject! { |i| b << i if i < 5 }
a #=> [5, 6]
b #=> [1, 2, 3, 4]

如果i < 5求值为真,b << i将该元素放入b并返回结果,导致reject!将其从a中删除。

同样,如果i < 5的计算结果为false,则跳过b << i,块返回false结果,该元素保留在a中。

相关内容

最新更新