Class Index | File Index

Classes


Class pv.Flatten

Represents a flatten operator for the specified array. Flattening allows hierarchical maps to be flattened into an array. The levels in the input tree are specified by key functions.

For example, consider the following hierarchical data structure of Barley yields, from various sites in Minnesota during 1931-2:

{ 1931: {
    Manchuria: {
      "University Farm": 27.00,
      "Waseca": 48.87,
      "Morris": 27.43,
      ... },
    Glabron: {
      "University Farm": 43.07,
      "Waseca": 55.20,
      ... } },
  1932: {
    ... } }
To facilitate visualization, it may be useful to flatten the tree into a tabular array:
var array = pv.flatten(yields)
    .key("year")
    .key("variety")
    .key("site")
    .key("yield")
    .array();
This returns an array of object elements. Each element in the array has attributes corresponding to this flatten operator's keys:
{ site: "University Farm", variety: "Manchuria", year: 1931, yield: 27 },
{ site: "Waseca", variety: "Manchuria", year: 1931, yield: 48.87 },
{ site: "Morris", variety: "Manchuria", year: 1931, yield: 27.43 },
{ site: "University Farm", variety: "Glabron", year: 1931, yield: 43.07 },
{ site: "Waseca", variety: "Glabron", year: 1931, yield: 55.2 }, ...

The flatten operator is roughly the inverse of the pv.Nest and pv.Tree operators.
Defined in: Flatten.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
pv.Flatten(map)
Constructs a flatten operator for the specified map.
Method Summary
Method Attributes Method Name and Description
 
Returns the flattened array.
 
key(key, f)
Flattens using the specified key function.
 
leaf(f)
Flattens using the specified leaf function.
Class Detail
pv.Flatten(map)
Constructs a flatten operator for the specified map. This constructor should not be invoked directly; use pv.flatten instead.
Parameters:
map
a map to flatten.
Method Detail
array()
Returns the flattened array. Each entry in the array is an object; each object has attributes corresponding to this flatten operator's keys.
Returns:
an array of elements from the flattened map.

{pv.Nest} key(key, f)
Flattens using the specified key function. Multiple keys may be added to the flatten; the tiers of the underlying tree must correspond to the specified keys, in order. The order of the returned array is undefined; however, you can easily sort it.
Parameters:
{string} key
the key name.
{function} f Optional
an optional value map function.
Returns:
{pv.Nest} this.

{pv.Nest} leaf(f)
Flattens using the specified leaf function. This is an alternative to specifying an explicit set of keys; the tiers of the underlying tree will be determined dynamically by recursing on the values, and the resulting keys will be stored in the entries keys attribute. The leaf function must return true for leaves, and false for internal nodes.
Parameters:
{function} f
a leaf function.
Returns:
{pv.Nest} this.

Documentation generated by JsDoc Toolkit 2.3.2 on Fri May 28 2010 10:13:28 GMT-0700 (PDT)