APIdock / Ruby
/
method

take_while

ruby latest stable - Class: Array
take_while()
public

Passes elements to the block until the block returns nil or false, then stops iterating and returns an array of all prior elements.

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

See also Array#drop_while

a = [1, 2, 3, 4, 5, 0]
a.take_while  { |i| i < 3 } #=> [1, 2]
static VALUE
rb_ary_take_while(VALUE ary)
{
 long i;
 RETURN_ENUMERATOR(ary, 0, 0);
 for (i = 0; i < RARRAY_LEN(ary); i++) {
 if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;
 }
 return rb_ary_take(ary, LONG2FIX(i));
}

AltStyle によって変換されたページ (->オリジナル) /