Method: Hash#reject

Defined in:
hash.c

#reject {|key, value| ... } ⇒ Hash #rejectObject

Returns a new hash consisting of entries for which the block returns false.

If no block is given, an enumerator is returned instead.

h = { "a" => 100, "b" => 200, "c" => 300 }
h.reject {|k,v| k < "b"}  #=> {"b" => 200, "c" => 300}
h.reject {|k,v| v > 100}  #=> {"a" => 100}

Overloads:

  • #reject {|key, value| ... } ⇒ Hash

    Yields:

    Returns:



1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
# File 'hash.c', line 1276

VALUE
rb_hash_reject(VALUE hash)
{
    VALUE result;

    RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);
    if (RTEST(ruby_verbose)) {
  VALUE klass;
  if (HAS_EXTRA_STATES(hash, klass)) {
      rb_warn("extra states are no longer copied: %+"PRIsVALUE, hash);
  }
    }
    result = rb_hash_new();
    if (!RHASH_EMPTY_P(hash)) {
  rb_hash_foreach(hash, reject_i, result);
    }
    return result;
}