Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
titleAvailability

This routine is available starting with SIL Engine™ 4.8.0.11.

Syntax

arrayStructMap(structArray, field);

Description

Excerpttable-plus
applyColStyleToCelltrue
heading0
columnTypess,s,s,s
multiplefalse
columnAttributesstyle="background:#e5e7ea;font-weight:bold,,style="background:#e5e7ea;font-weight:bold,
enableSortingfalse

Syntax

arrayStructMap(structArray, field)

Package

array

Alias

Pkg Usage

structMap(structArray, field)

Description

Excerpt
hiddentrue

Returns an indexed array of structs mapped to a given field name.

Returns an indexed array of structs mapped to a given field name.

Parameters

Table plus
applyColStyleToCelltrue
columnTypess,s,s,s
heading0
multiplefalse
enableSortingfalse

Parameter name

Type

Required

Description

Struct Array

Array of Structs

Yes

An array of structs to be indexed.

Field

String

Yes

Name of the field to use as the indexer.

Return

...

Type

Struct String []

Returns an array of indexed structs.

Examples

...

Example Part 1 - Data for structs

Assume we have a CSV file containing a list of toys. There is a column for the toy name and another for the toys color.

Code Block
name, color
Airplane, White
Bouncy Ball, Blue
Car, Red
Dog, Brown
Elephant, Gray
...

Example Part 2 - Populating structs

With the given CSV data we can quickly populate an array of structs.

Code Block
//define struct
struct _toy {
	    string name;
 	    string color;
}

//create struct array and populate from csv
_toy [] toys = readFromCSVFile("toysList.csv", true);

Example Part 3 - Mapping the struct array

Now that we have a list of structs we can map them to one of the fields.

Code Block
toys = arrayStructMap(toys, "name"); //mapping each array element to the name field

return toys["Bouncy Ball"].color; //element can be retrieved by name now that is has been mapped

Result: "Blue"

See also

Filter by label (Content by label)
showLabelsfalse
max25
showSpacefalse
cqllabel = "

...

array_routine" and space = currentSpace ( )
labels

...

array_

...

routines