An array that supports both iteration and key value indexing.
## Usage
Create a new instance of FunkyArray
#### JavaScript
```js
const funkyArray = new FunkyArray();
```
#### TypeScript
```ts
const funkyArray = new FunkyArray<key_type,value_type>();
```
From here you can `set` or `remove` items by an a key of `key_type`
For example:
```ts
const users = new FunkyArray<string,User>();
const user = new User(1, "Username", crypto.randomUUID());
users.set(user.uuid, user);
```
## General concepts
FunkyArray uses an internal "itteration array" which is really just a regular js array with all the keys. Whenever you see a `regenerate:boolean` in a method, this is so you can not regenerate the "itteration array" if you are bulk inserting things. In general you want to be very careful when turning this off and it can break itteration.