> For the complete documentation index, see [llms.txt](https://near-sdk-js.gitbook.io/near-sdk-js/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://near-sdk-js.gitbook.io/near-sdk-js/collections/unordered-map/classes/unorderedmap.md).

# UnorderedMap

[**collections/unordered-map**](/near-sdk-js/collections/unordered-map.md) • **Docs**

***

[near-sdk-js v2.0.0](/near-sdk-js/packages.md) / [collections/unordered-map](/near-sdk-js/collections/unordered-map.md) / UnorderedMap

## Class: UnorderedMap\<DataType>

An unordered map that stores data in NEAR storage.

### Extends

* [`SubType`](/near-sdk-js/collections/subtype/classes/subtype.md)<`DataType`>

### Type Parameters

• **DataType**

### Constructors

#### new UnorderedMap()

> **new UnorderedMap**<`DataType`>(`prefix`): [`UnorderedMap`](/near-sdk-js/collections/unordered-map/classes/unorderedmap.md)<`DataType`>

**Parameters**

• **prefix**: `string`

The byte prefix to use when storing elements inside this collection.

**Returns**

[`UnorderedMap`](/near-sdk-js/collections/unordered-map/classes/unorderedmap.md)<`DataType`>

**Overrides**

[`SubType`](/near-sdk-js/collections/subtype/classes/subtype.md).[`constructor`](/near-sdk-js/collections/subtype/classes/subtype.md#constructors)

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:27](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L27)

### Properties

#### \_keys

> `readonly` **\_keys**: [`Vector`](/near-sdk-js/collections/vector/classes/vector.md)<`string`>

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:21](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L21)

***

#### prefix

> `readonly` **prefix**: `string`

The byte prefix to use when storing elements inside this collection.

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:27](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L27)

***

#### values

> `readonly` **values**: [`LookupMap`](/near-sdk-js/collections/lookup-map/classes/lookupmap.md)<`ValueAndIndex`>

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:22](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L22)

### Accessors

#### length

> `get` **length**(): `number`

The number of elements stored in the collection.

**Returns**

`number`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:36](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L36)

### Methods

#### \[iterator]\()

> **\[iterator]**(): `UnorderedMapIterator`<`DataType`>

**Returns**

`UnorderedMapIterator`<`DataType`>

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:145](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L145)

***

#### clear()

> **clear**(): `void`

Remove all of the elements stored within the collection.

**Returns**

`void`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:136](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L136)

***

#### extend()

> **extend**(`keyValuePairs`): `void`

Extends the current collection with the passed in array of key-value pairs.

**Parameters**

• **keyValuePairs**: \[`string`, `DataType`]\[]

The key-value pairs to extend the collection with.

**Returns**

`void`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:184](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L184)

***

#### get()

> **get**(`key`, `options`?): `DataType`

Get the data stored at the provided key.

**Parameters**

• **key**: `string`

The key at which to look for the data.

• **options?**: `Omit`<[`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>, `"serializer"`>

Options for retrieving the data.

**Returns**

`DataType`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:53](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L53)

***

#### isEmpty()

> **isEmpty**(): `boolean`

Checks whether the collection is empty.

**Returns**

`boolean`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:43](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L43)

***

#### keys()

> **keys**(`__namedParameters`): `string`\[]

**Parameters**

• **\_\_namedParameters**

• **\_\_namedParameters.limit**: `any`

• **\_\_namedParameters.start**: `any`

**Returns**

`string`\[]

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:220](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L220)

***

#### remove()

> **remove**(`key`, `options`?): `DataType`

Removes and retrieves the element with the provided key.

**Parameters**

• **key**: `string`

The key at which to remove data.

• **options?**: `Omit`<[`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>, `"serializer"`>

Options for retrieving the data.

**Returns**

`DataType`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:105](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L105)

***

#### serialize()

> **serialize**(`options`?): `Uint8Array`

Serialize the collection.

**Parameters**

• **options?**: `Pick`<[`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>, `"serializer"`>

Options for storing the data.

**Returns**

`Uint8Array`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:195](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L195)

***

#### set()

> **set**(`key`, `value`, `options`?): `DataType`

Store a new value at the provided key.

**Parameters**

• **key**: `string`

The key at which to store in the collection.

• **value**: `DataType`

The value to store in the collection.

• **options?**: [`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>

Options for retrieving and storing the data.

**Returns**

`DataType`

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:76](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L76)

***

#### set\_reconstructor()

> **set\_reconstructor**(`options`?): `Omit`<[`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>, `"serializer"`>

**Parameters**

• **options?**: `Omit`<[`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>, `"serializer"`>

**Returns**

`Omit`<[`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>, `"serializer"`>

**Inherited from**

[`SubType`](/near-sdk-js/collections/subtype/classes/subtype.md).[`set_reconstructor`](/near-sdk-js/collections/subtype/classes/subtype.md#set_reconstructor)

**Defined in**

[packages/near-sdk-js/src/collections/subtype.ts:8](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/subtype.ts#L8)

***

#### subtype()

> **subtype**(): `any`

**Returns**

`any`

**Inherited from**

[`SubType`](/near-sdk-js/collections/subtype/classes/subtype.md).[`subtype`](/near-sdk-js/collections/subtype/classes/subtype.md#subtype)

**Defined in**

[packages/near-sdk-js/src/collections/subtype.ts:6](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/subtype.ts#L6)

***

#### toArray()

> **toArray**(`options`?): \[`string`, `DataType`]\[]

Return a JavaScript array of the data stored within the collection.

**Parameters**

• **options?**: [`GetOptions`](/near-sdk-js/types/collections/interfaces/getoptions.md)<`DataType`>

Options for retrieving and storing the data.

**Returns**

\[`string`, `DataType`]\[]

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:167](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L167)

***

#### reconstruct()

> `static` **reconstruct**<`DataType`>(`data`): [`UnorderedMap`](/near-sdk-js/collections/unordered-map/classes/unorderedmap.md)<`DataType`>

Converts the deserialized data from storage to a JavaScript instance of the collection.

**Type Parameters**

• **DataType**

**Parameters**

• **data**: [`UnorderedMap`](/near-sdk-js/collections/unordered-map/classes/unorderedmap.md)<`DataType`>

The deserialized data to create an instance from.

**Returns**

[`UnorderedMap`](/near-sdk-js/collections/unordered-map/classes/unorderedmap.md)<`DataType`>

**Defined in**

[packages/near-sdk-js/src/collections/unordered-map.ts:204](https://github.com/near/near-sdk-js/blob/b58ac04fc6dff2f1120e9098c0cb059493486598/packages/near-sdk-js/src/collections/unordered-map.ts#L204)
