instance method
Hash#any?
() -> bool
(untyped pattern) -> bool
() { (K, V) -> ::boolish } -> bool
any? → true or false
any?(entry) → true or false
any? {|key, value| ... } → true or false
hash.c
View on GitHub ↗
static VALUE
rb_hash_any_p(int argc, VALUE *argv, VALUE hash)
{
VALUE args[2];
args[0] = Qfalse;
rb_check_arity(argc, 0, 1);
if (RHASH_EMPTY_P(hash)) return Qfalse;
if (argc) {
if (rb_block_given_p()) {
rb_warn("given block not used");
}
args[1] = argv[0];
rb_hash_foreach(hash, any_p_i_pattern, (VALUE)args);
}
else {
if (!rb_block_given_p()) {
/* yields pairs, never false */
return Qtrue;
}
if (rb_block_pair_yield_optimizable())
rb_hash_foreach(hash, any_p_i_fast, (VALUE)args);
else
rb_hash_foreach(hash, any_p_i, (VALUE)args);
}
return args[0];
}
Returns true if any element satisfies a given criterion; false otherwise.
If self has no element, returns false and argument or block are not used; otherwise behaves as below.
With no argument and no block, returns true if self is non-empty, false otherwise.
With argument entry and no block, returns true if for any key key self.assoc(key) == entry, false otherwise:
Example
h = {foo: 0, bar: 1, baz: 2} h.assoc(:bar) # => [:bar, 1] h.any?([:bar, 1]) # => true h.any?([:bar, 0]) # => false
With no argument and a block given, calls the block with each key-value pair; returns true if the block returns a truthy value, false otherwise:
Example
h = {foo: 0, bar: 1, baz: 2} h.any? {|key, value| value < 3 } # => true h.any? {|key, value| value > 3 } # => false
With both argument entry and a block given, issues a warning and ignores the block.
Related: Enumerable#any? (which this method overrides); see also Methods for Fetching.