Skip to content

mapify

Convert an array to a map

113 bytes

Usage

The mapify function converts an array into a Map object, allowing you to specify how keys and values are derived from each array item.

Parameters

  1. array: The input array to be converted into a Map.
  2. getKey: A function that determines the key for each item in the array. It receives two arguments:
    • item: The current array item.
    • index: The index of the current item in the array.
  3. getValue (optional): A function that determines the value for each item in the array. If not provided, the original array item is used as the value. It also receives two arguments:
    • item: The current array item.
    • index: The index of the current item in the array.

Return Value

Returns a new Map object where keys and values are derived from the input array using the provided mapping functions.

Example

import * as
import _
_
from 'radashi'
const
const fish: readonly [{
readonly name: "Marlin";
readonly weight: 105;
}, {
readonly name: "Bass";
readonly weight: 8;
}, {
readonly name: "Trout";
readonly weight: 13;
}]
fish
= [
{
name: "Marlin"
name
: 'Marlin',
weight: 105
weight
: 105,
},
{
name: "Bass"
name
: 'Bass',
weight: 8
weight
: 8,
},
{
name: "Trout"
name
: 'Trout',
weight: 13
weight
: 13,
},
] as
type const = readonly [{
readonly name: "Marlin";
readonly weight: 105;
}, {
readonly name: "Bass";
readonly weight: 8;
}, {
readonly name: "Trout";
readonly weight: 13;
}]
const
const
const mappedByName: Map<"Marlin" | "Bass" | "Trout", {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}>
mappedByName
=
import _
_
.
mapify<{
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}, "Marlin" | "Bass" | "Trout", {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}>(array: readonly ({
...;
} | ... 1 more ... | {
...;
})[], getKey: (item: {
...;
} | ... 1 more ... | {
...;
}, index: number) => "Marlin" | ... 1 more ... | "Trout", getValue?: ((item: {
...;
} | ... 1 more ... | {
...;
}, index: number) => {
...;
} | ... 1 more ... | {
...;
}) | undefined): Map<...>
export mapify

Create a new Map instance from an array.

@seehttps://radashi.js.org/reference/array/mapify

@example

const array = [
{ id: 1, name: 'Fred' },
{ id: 2, name: 'Annie' },
]
mapify(
array,
item => item.id,
item => item.name,
)
// Map(2) { 1 => 'Fred', 2 => 'Annie' }

@version12.2.0

mapify
(
const fish: readonly [{
readonly name: "Marlin";
readonly weight: 105;
}, {
readonly name: "Bass";
readonly weight: 8;
}, {
readonly name: "Trout";
readonly weight: 13;
}]
fish
,
f: {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}
f
=>
f: {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}
f
.
name: "Marlin" | "Bass" | "Trout"
name
) // => Map(3) {'Marlin' => { name: 'Marlin', weight: 105 }, 'Bass' => { name: 'Bass', weight: 8 }, 'Trout' => { name: 'Trout', weight: 13 }}
const
const mappedByNameAndWeight: Map<"Marlin" | "Bass" | "Trout", 105 | 8 | 13>
mappedByNameAndWeight
=
import _
_
.
mapify<{
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}, "Marlin" | "Bass" | "Trout", 105 | 8 | 13>(array: readonly ({
...;
} | ... 1 more ... | {
...;
})[], getKey: (item: {
...;
} | ... 1 more ... | {
...;
}, index: number) => "Marlin" | ... 1 more ... | "Trout", getValue?: ((item: {
...;
} | ... 1 more ... | {
...;
}, index: number) => 105 | ... 1 more ... | 13) | undefined): Map<...>
export mapify

Create a new Map instance from an array.

@seehttps://radashi.js.org/reference/array/mapify

@example

const array = [
{ id: 1, name: 'Fred' },
{ id: 2, name: 'Annie' },
]
mapify(
array,
item => item.id,
item => item.name,
)
// Map(2) { 1 => 'Fred', 2 => 'Annie' }

@version12.2.0

mapify
(
const fish: readonly [{
readonly name: "Marlin";
readonly weight: 105;
}, {
readonly name: "Bass";
readonly weight: 8;
}, {
readonly name: "Trout";
readonly weight: 13;
}]
fish
,
f: {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}
f
=>
f: {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}
f
.
name: "Marlin" | "Bass" | "Trout"
name
,
f: {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}
f
=>
f: {
readonly name: "Marlin";
readonly weight: 105;
} | {
readonly name: "Bass";
readonly weight: 8;
} | {
readonly name: "Trout";
readonly weight: 13;
}
f
.
weight: 105 | 8 | 13
weight
,
) // => Map(3) { 'Marlin' => 105, 'Bass' => 8, 'Trout' => 13 }