Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Array#any?
array.any? → true or false
array.any? {|element| ... } → true or false
array.any?(obj) → true or false
array.c
View on GitHub ↗
static VALUE
rb_ary_any_p(int argc, VALUE *argv, VALUE ary)
{
long i, len = RARRAY_LEN(ary);
rb_check_arity(argc, 0, 1);
if (!len) return Qfalse;
if (argc) {
if (rb_block_given_p()) {
rb_warn("given block not used");
}
for (i = 0; i < RARRAY_LEN(ary); ++i) {
if (RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) return Qtrue;
}
}
else if (!rb_block_given_p()) {
for (i = 0; i < len; ++i) {
if (RTEST(RARRAY_AREF(ary, i))) return Qtrue;
}
}
else {
for (i = 0; i < RARRAY_LEN(ary); ++i) {
if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qtrue;
}
}
return Qfalse;
}
Returns true if any element of self meets a given criterion.
If self has no element, returns false and argument or block are not used.
With no block given and no argument, returns true if self has any truthy element, false otherwise:
Example
[nil, 0, false].any? # => true [nil, false].any? # => false [].any? # => false
With a block given and no argument, calls the block with each element in self; returns true if the block returns any truthy value, false otherwise:
Example
[0, 1, 2].any? {|element| element > 1 } # => true [0, 1, 2].any? {|element| element > 2 } # => false
If argument obj is given, returns true if obj.=== any element, false otherwise:
Example
['food', 'drink'].any?(/foo/) # => true ['food', 'drink'].any?(/bar/) # => false [].any?(/foo/) # => false [0, 1, 2].any?(1) # => true [0, 1, 2].any?(3) # => false
Related: Enumerable#any?