HH\Vector::takeWhile

Returns a Vector containing the values of the current Vector up to but not including the first value that produces false when passed to the specified callback

Description

public function takeWhile(
  (function(Tv):bool) $fn,
): Vector<Tv>

That is, takes the continuous prefix of values in the current Vector for which the specified callback returns true.

The returned Vector will always be a subset (but not necessarily a proper subset) of the current Vector.

Parameters

  • $fn - The callback that is used to determine the stopping condition.

Return Values

Examples

This example shows how takeWhile can be used to create a new Vector by taking elements from the beginning of an existing Vector:

<?hh

namespace Hack\UserDocumentation\API\Examples\Vector\TakeWhile;

$v = Vector {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144};

// Include values until we reach one over 10
$v2 = $v->takeWhile($x ==> $x <= 10);
var_dump($v2);
Output
object(HH\Vector)#3 (7) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(1)
  [3]=>
  int(2)
  [4]=>
  int(3)
  [5]=>
  int(5)
  [6]=>
  int(8)
}