---
title: "StructArray | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class StructArray`Abstract`

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#Externals.StructArray))

-   StructArray
    -   [StructArrayLayout6i1ul2ui20](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout6i1ul2ui20/)
    -   [StructArrayLayout1ul2ui8](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout1ul2ui8/)
    -   [StructArrayLayout3ui6](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout3ui6/)
    -   [StructArrayLayout2ui4](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout2ui4/)
    -   [StructArrayLayout1ui2](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout1ui2/)
    -   [StructArrayLayout3i6](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout3i6/)
    -   [StructArrayLayout1f4](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout1f4/)
    -   [StructArrayLayout1ui2f12](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout1ui2f12/)
    -   [StructArrayLayout8i15ui1ul2f2ui64](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout8i15ui1ul2f2ui64/)
    -   [StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48/)
    -   [StructArrayLayout4i4ui4i24](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout4i4ui4i24/)
    -   [StructArrayLayout3f12](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout3f12/)
    -   [StructArrayLayout1ul4](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout1ul4/)
    -   [StructArrayLayout2ub2f2i16](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout2ub2f2i16/)
    -   [StructArrayLayout2i4](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout2i4/)
    -   [StructArrayLayout2i4ub8](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout2i4ub8/)
    -   [StructArrayLayout2f8](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout2f8/)
    -   [StructArrayLayout2i4i12](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArrayLayout2i4i12/)

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[arrayBuffer](#arraybuffer) [bytesPerElement](#bytesperelement) [capacity](#capacity) [isTransferred](#istransferred) [length](#length) [members](#members) [uint8](#uint8)

### Methods[](#methods)

[clear](#clear) [emplace](#emplace) [emplaceBack](#emplaceback) [freeBufferAfterUpload](#freebufferafterupload) [reserve](#reserve) [resize](#resize) [deserialize](#deserialize) [serialize](#serialize)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new StructArray(): StructArray[](#constructorstructarray)
    
    #### Returns StructArray
    

## Properties[](#properties-1)

### arrayBuffer[](#arraybuffer)

arrayBuffer: ArrayBuffer

### bytesPerElement[](#bytesperelement)

bytesPerElement: number

### capacity[](#capacity)

capacity: number

### isTransferred[](#istransferred)

isTransferred: boolean

### length[](#length)

length: number

### members[](#members)

members: [StructArrayMember](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.StructArrayMember/)\[\]

### uint8[](#uint8)

uint8: Uint8Array

## Methods[](#methods-1)

### clear[](#clear)

-   clear(): void[](#clear-1)
    
    Resets the length of the array to 0 without de-allocating capacity.
    
    #### Returns void
    

### `Abstract`emplace[](#emplace)

-   emplace(i: number, ...v: number\[\]): any[](#emplace-1)
    
    #### Parameters
    
    -   i: number
    -   ...v: number\[\]
    
    #### Returns any
    

### `Abstract`emplaceBack[](#emplaceback)

-   emplaceBack(...v: number\[\]): any[](#emplaceback-1)
    
    #### Parameters
    
    -   ...v: number\[\]
    
    #### Returns any
    

### freeBufferAfterUpload[](#freebufferafterupload)

-   freeBufferAfterUpload(): void[](#freebufferafterupload-1)
    
    Replace the buffer with an empty one so typed views release the original ArrayBuffer for GC.
    
    #### Returns void
    

### reserve[](#reserve)

-   reserve(n: number): void[](#reserve-1)
    
    Indicate a planned increase in size, so that any necessary allocation may be done once, ahead of time.
    
    #### Parameters
    
    -   n: number
        
        The expected size of the array.
        
    
    #### Returns void
    

### resize[](#resize)

-   resize(n: number): void[](#resize-1)
    
    Resize the array. If `n` is greater than the current length then additional elements with undefined values are added. If `n` is less than the current length then the array will be reduced to the first `n` elements.
    
    #### Parameters
    
    -   n: number
        
        The new size of the array.
        
    
    #### Returns void
    

### `Static`deserialize[](#deserialize)

-   deserialize(input: [SerializedStructArray](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.SerializedStructArray/)): any[](#deserialize-1)
    
    #### Parameters
    
    -   input: [SerializedStructArray](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.SerializedStructArray/)
    
    #### Returns any
    

### `Static`serialize[](#serialize)

-   serialize(  
        array: StructArray,  
        transferables?: [Transferable](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Transferable/)\[\],  
    ): [SerializedStructArray](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.SerializedStructArray/)[](#serialize-1)
    
    Serialize a StructArray instance. Serializes both the raw data and the metadata needed to reconstruct the StructArray base class during deserialization.
    
    #### Parameters
    
    -   array: StructArray
    -   `Optional`transferables: [Transferable](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Transferable/)\[\]
    
    #### Returns [SerializedStructArray](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.SerializedStructArray/)
