# Namespace goog.structs

code »

## Interfaces

goog.structs.Collection
  An interface for a collection of values.

## Classes

goog.structs.Map
  Class for Hash Map datastructure.
goog.structs.Set
  A set that can contain both primitives and objects.

Show:Public Protected Private

## Global Functions

code »goog.structs.clear ( col )

Removes all the elements from the collection.

Parameters

col: `Object`
  The collection-like object.

code »goog.structs.contains ( col, val ) ⇒ `boolean`

Whether the collection contains the given value. This is O(n) and uses equals (==) to test the existence.

Parameters

col: `Object`
  The collection-like object.
val: `*`
  The value to check for.

Returns

True if the map contains the value.

code »`<T, S>` goog.structs.every ( col, f, opt_obj ) ⇒ `boolean`

Calls f for each value in a collection. If all calls return true this return true this returns true. If any returns false this returns false at this point and does not continue to check the remaining values.

Parameters

col: `S`
  The collection-like object.
f: `function(this: T, ?, ?, S): boolean`
  The function to call for every value. This function takes 3 arguments (the value, the key or undefined if the collection has no notion of keys, and the collection) and should return a boolean.
opt_obj: `T=`
  The object to be used as the value of 'this' within `f`.

Returns

True if all key-value pairs pass the test.

code »`<T, S>` goog.structs.filter ( col, f, opt_obj ) ⇒ `(!Object|!Array)`

Calls a function for every value in the collection. When a call returns true, adds the value to a new collection (Array is returned by default).

Parameters

col: `S`
  The collection-like object.
f: `function(this: T, ?, ?, S): boolean`
  The function to call for every value. This function takes 3 arguments (the value, the key or undefined if the collection has no notion of keys, and the collection) and should return a Boolean. If the return value is true the value is added to the result collection. If it is false the value is not included.
opt_obj: `T=`
  The object to be used as the value of 'this' within `f`.

Returns

A new collection where the passed values are present. If col is a key-less collection an array is returned. If col has keys and values a plain old JS object is returned.

code »`<T, S>` goog.structs.forEach ( col, f, opt_obj )

Calls a function for each value in a collection. The function takes three arguments; the value, the key and the collection. NOTE: This will be deprecated soon! Please use a more specific method if possible, e.g. goog.array.forEach, goog.object.forEach, etc.

Parameters

col: `S`
  The collection-like object.
f: `function(this: T, ?, ?, S): ?`
  The function to call for every value. This function takes 3 arguments (the value, the key or undefined if the collection has no notion of keys, and the collection) and the return value is irrelevant.
opt_obj: `T=`
  The object to be used as the value of 'this' within `f`.

code »goog.structs.getCount ( col ) ⇒ `number`

Returns the number of values in the collection-like object.

Parameters

col: `Object`
  The collection-like object.

Returns

The number of values in the collection-like object.

code »goog.structs.getKeys ( col ) ⇒ `(!Array|undefined)`

Returns the keys of the collection. Some collections have no notion of keys/indexes and this function will return undefined in those cases.

Parameters

col: `Object`
  The collection-like object.

Returns

The keys in the collection.

code »goog.structs.getValues ( col ) ⇒ `!Array`

Returns the values of the collection-like object.

Parameters

col: `Object`
  The collection-like object.

Returns

The values in the collection-like object.

code »goog.structs.isEmpty ( col ) ⇒ `boolean`

Whether the collection is empty.

Parameters

col: `Object`
  The collection-like object.

Returns

True if empty.

code »`<T, S, V>` goog.structs.map ( col, f, opt_obj ) ⇒ `(!Object.<V>|!Array.<V>)`

Calls a function for every value in the collection and adds the result into a new collection (defaults to creating a new Array).

Parameters

col: `S`
  The collection-like object.
f: `function(this: T, ?, ?, S): V`
  The function to call for every value. This function takes 3 arguments (the value, the key or undefined if the collection has no notion of keys, and the collection) and should return something. The result will be used as the value in the new collection.
opt_obj: `T=`
  The object to be used as the value of 'this' within `f`.

Returns

A new collection with the new values. If col is a key-less collection an array is returned. If col has keys and values a plain old JS object is returned.

code »`<T, S>` goog.structs.some ( col, f, opt_obj ) ⇒ `boolean`

Calls f for each value in a collection. If any call returns true this returns true (without checking the rest). If all returns false this returns false.

Parameters

col: `S`
  The collection-like object.
f: `function(this: T, ?, ?, S): boolean`
  The function to call for every value. This function takes 3 arguments (the value, the key or undefined if the collection has no notion of keys, and the collection) and should return a boolean.
opt_obj: `T=`
  The object to be used as the value of 'this' within `f`.

Returns

True if any value passes the test.