Difference between revisions of "Array.filteroncondition()"

From ZCubes Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 22: Line 22:
  
 
4
 
4
 +
 +
Array.partitiononcondition gives the same with matching and unmatching as two separate arrays.
  
 
==Related==
 
==Related==
Line 51: Line 53:
 
Array.prototype.splitwhile=Array.prototype.partitiononcondition with SomeTakeDropOrAllFlag(0);
 
Array.prototype.splitwhile=Array.prototype.partitiononcondition with SomeTakeDropOrAllFlag(0);
 
Array.prototype.splitwhileasvector=Array.prototype.partitiononcondition with SomeTakeDropOrAllFlag(10);
 
Array.prototype.splitwhileasvector=Array.prototype.partitiononcondition with SomeTakeDropOrAllFlag(10);
 +
 +
 +
Please note that "asvector" implies each row in the array is treated as one to check the condition (like a vector).
 +
 +
For example, [1..10,2..3].collectwhileasvector("x[0]<5") will give the answer as the input itself, because in both rows, x[0] <5 is true. Here for each vector (or row), the function is applied to check if it should be collected or not.
 +
 +
Generally the flag means:
 +
 +
0 or 1 means take
 +
 +
2 means drop
 +
 +
10 or 11 means take as vector (flattened)
 +
 +
12 means drop take as vector (flattened)

Latest revision as of 13:00, 15 April 2020

Array Filter Functions (SomeTakeDropOrAllFlag, SomeFunction, SomeParameter)

Array.filteroncondition(SomeTakeDropOrAllFlag, SomeFunction, SomeParameter)

Apply a function to an array with parameters, and return list that matched/not matched/all Array.suchthat() is Array.filteroncondition with SomeTakeDropOrAllFlag set to 0 (Take when condition is satisfied)

Array.filteroncolumn(SomeCondition, SomeExtractColumns, SomeFilterOnColumn)

SomeExtractColumns are the columns that are extracted, and filters are applied on SomeFilterOnColumn or column 0 1..100.filteroncolumn(">5")

Array.filteronrow(SomeCondition, SomeExtractRows, SomeFilterOnRow)

SomeExtractRows are the rows that are extracted, and filters are applied on SomeFilterOnRow or row 0 [1..100].filteronrow("<5")

gives

1

2

3

4

Array.partitiononcondition gives the same with matching and unmatching as two separate arrays.

Related

Array.collectwhile=Array.filteroncondition with SomeTakeDropOrAllFlag (0);

Array.suchthat=Array.filteroncondition with SomeTakeDropOrAllFlag (0);

Array.collect=Array.suchthat as previous;

Array.takewhile=Array.filteroncondition with SomeTakeDropOrAllFlag(1);

Array.dropwhile=Array.filteroncondition with SomeTakeDropOrAllFlag(2);


Array.collectwhileasvector=Array.filteroncondition with SomeTakeDropOrAllFlag(10);

Array.suchthatasvector=Array.filteroncondition with SomeTakeDropOrAllFlag(10);

Array.collectasvector=Array.suchthatasvector; as previous

Array.takewhileasvector=Array.filteroncondition with SomeTakeDropOrAllFlag(11);

Array.dropwhileasvector=Array.filteroncondition with SomeTakeDropOrAllFlag(12);


Array.prototype.splitwhile=Array.prototype.partitiononcondition with SomeTakeDropOrAllFlag(0); Array.prototype.splitwhileasvector=Array.prototype.partitiononcondition with SomeTakeDropOrAllFlag(10);


Please note that "asvector" implies each row in the array is treated as one to check the condition (like a vector).

For example, [1..10,2..3].collectwhileasvector("x[0]<5") will give the answer as the input itself, because in both rows, x[0] <5 is true. Here for each vector (or row), the function is applied to check if it should be collected or not.

Generally the flag means:

0 or 1 means take

2 means drop

10 or 11 means take as vector (flattened)

12 means drop take as vector (flattened)