take while for filters

Take elements of the input while a predicate is true.

Signature

> take while {flags} (predicate)

Parameters

  • predicate: the predicate that element(s) must match

Input/output types:

input output
list<any> list<any>
table table

Examples

Take while the element is negative

> [-1 -2 9 1] | take while {|x| $x < 0 }
╭───┬────╮
 0  -1 
 1  -2 
╰───┴────╯

Take while the element is negative using stored condition

> let cond = {|x| $x < 0 }; [-1 -2 9 1] | take while $cond
╭───┬────╮
 0  -1 
 1  -2 
╰───┴────╯

Take while the field value is negative

> [{a: -1} {a: -2} {a: 9} {a: 1}] | take while {|x| $x.a < 0 }
╭───┬────╮
 # │ a  │
├───┼────┤
 0  -1 
 1  -2 
╰───┴────╯