Lookup uses one component to find another by "looking up" the corresponding value in a lookup table. Lookup serves to convert a categorized component back to its original form, or more generally to provide arbitrary associations of unrelated object types. The lookup can occur entirely within the input field when it contains all components necessary to do the lookup, or alternatively the lookup table can be provided as a separate field in table.
If table is an array, Lookup treats it as if it has an implicit "positions" component with values from 0 to n-1, where n is the number of items in the array. Thus if the data component is integer, and lookup is an array of strings, data can be used to lookup a matching value in the implicit positions component and return the string. Alternatively, if data were also a string array, Lookup could lookup a matching value in the table array and return the corresponding implicit position.