instance method
Array#filter!
() { (Elem item) -> ::boolish } -> self?
() -> ::Enumerator[Elem, self?]
filter! {|element| ... } → self or nil
filter! → new_enumerator
array.c
View on GitHub ↗
static VALUE
rb_ary_select_bang(VALUE ary)
{
struct select_bang_arg args;
RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
rb_ary_modify(ary);
args.ary = ary;
args.len[0] = args.len[1] = 0;
return rb_ensure(select_bang_i, (VALUE)&args, select_bang_ensure, (VALUE)&args);
}
Alias of #select!
With a block given, calls the block with each element of self; removes from self those elements for which the block returns false or nil.
Returns self if any elements were removed:
Example
a = [:foo, 'bar', 2, :bam] a.select! {|element| element.to_s.start_with?('b') } # => ["bar", :bam]
Returns nil if no elements were removed.
With no block given, returns a new Enumerator.
Related: see Methods for Deleting.