vlookup
Definition: | object res = vlookup(object find_item, sequence grid_data, integer source_col, target_col, object def_value=0) |
Description: |
If the supplied item is in the source column, return the corresponding element from the target column.
find_item: An object that might exist in some grid_data[i][source_col]. grid_data: A 2D sequence that might contain find_item. source_col: The column in which to look for find_item. target_col: The column from which the corresponding item will be returned. def_value: Returned when find_item is not found or the target column does not exist in that row. |
pwa/p2js: | Supported. As mentioned elsewhere the last 3 examples below will print 1/0 on desktop/Phix but true/false in a web browser, or you could use printf()’s %d/%t for full consistency. |
Comments: |
If any row in the grid is actually a single atom, that row is ignored. If the length of a row is less than source_col, the row is also ignored. |
Example: |
sequence grid = {{"ant", "spider", "mortein"}, {"bear", "seal", "gun"}, {"cat", "dog", "ranger"}} ?vlookup("ant", grid, 1, 2, "?") -- ==> "spider" ?vlookup("ant", grid, 1, 3, "?") -- ==> "mortein" ?vlookup("seal", grid, 2, 3, "?") -- ==> "gun" ?vlookup("seal", grid, 2, 1, "?") -- ==> "bear" ?vlookup("mouse", grid, 2, 3, "?") -- ==> "?" |
Implementation: | See builtins\pvlookup.e (an autoinclude) for details of the actual implementation. |