我是新来的,新来的编码,我可以用一些帮助我试图解决的问题。我试图从数组中删除所有小于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
中。