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. That is, takes the continuous prefix of values in the current Vector for which the specified callback returns true.

Description

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

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. 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

  • (function(Tv):bool) $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)
}