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
array: The input array to be converted into a Map.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.
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.
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.
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 }