Array.delete
方法返回已删除的项目。
但是,如果我需要剩余的数组(不更改原始数组)怎么办?
嗯,这是一个选择:
%w(hello stack overflow !).delete_if{|x| x == 'overflow'}
# => ["hello", "stack", "!"]
我想知道是否有更好的方法,例如:
%w(hello stack overflow !).<something>('overflow')
有什么想法吗?
答案 0 :(得分:6)
%w(hello stack overflow !) - %w(overflow)
=> ["hello", "stack", "!"]
答案 1 :(得分:2)
这将是
%w(hello stack overflow !).reject {|x| x == 'overflow'}
这会为你保留数组,只删除它等于'overflow'的字符串
答案 2 :(得分:1)
一种方式是这样的:
newarray = old_array.select {|item| item != "overflow"}
答案 3 :(得分:0)
irb(main):001:0> x=%w(hello stack)
=> ["hello", "stack"]
irb(main):002:0> x.delete('stack')
=> "stack"
irb(main):003:0> x
=> ["hello"]
因此,请使用delete
方法。