In french: Filtre
Returns an array containing the elements of a source array for which a procedure returns True
// Retrieve an array with all the customers
arrCustomer is array of Customer
// Construct the array of customers a with negative account balance
arrCustomerNegativeBalance is array of Customer
arrCustomerNegativeBalance = Filter(arrCustomer, ACustomer => ACustomer.Balance<0)
// -> keep even numbers of an array
// (prefix syntax)
arr2 is array of int = [1, 2, 3, 4]
arr2 = arr2.Filter( X => IsEven(X))
// arr2 = [2, 4]
<Result> = Filter(<Source array> , <Condition to check>)
<Result>: WLanguage array
Array that contains the elements of the <Source array> for which the <Condition to check> returns True.
<Source array>: WLanguage array
Name of the Array variable to use. This array must be a one-dimensional array.
<Condition to check>: WLanguage procedure
Name of the WLanguage procedure to be executed for each element of the <Source array>. This procedure must return True or False.
This procedure can be:
It is also possible to directly use a lambda procedure.
- a global or local procedure,
- an internal procedure.
The <Condition to check> procedure is called for each element of the array by passing this element as a parameter.
If the procedure returns True
, the element from the source array is stored in the <Result> array.
Sequence of functions
You can use array functions in a sequence.
The following functions can be used in a sequence:
This sequence can be used as a source for a FOR ALL statement or it can end with one of the following functions:
gnMean = garrUser.Filter(cbFilter).Map(cbMap).Mean()
Unit examples (WINDEV): Filter / Map / Reduce
This page is also available for…