objectify
Convert a list to a dictionary object
97 bytes
since v12.1.0
Usage
Given an array of items, create a dictionary with keys and values mapped by given functions.
Parameters
array: The input array to be converted into an object.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 dictionary 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 objectifiedByName: Record<"Marlin" | "Bass" | "Trout", { readonly name: "Marlin"; readonly weight: 105;} | { readonly name: "Bass"; readonly weight: 8;} | { readonly name: "Trout"; readonly weight: 13;}>
objectifiedByName = import _
_.function objectify<{ 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 ({ readonly name: "Marlin"; readonly weight: 105;} | ... 1 more ... | { readonly name: "Trout"; readonly weight: 13;})[], getKey: (item: { readonly name: "Marlin"; readonly weight: 105;} | ... 1 more ... | { readonly name: "Trout"; readonly weight: 13;}, index: number) => "Marlin" | ... 1 more ... | "Trout", getValue?: (item: { readonly name: "Marlin"; readonly weight: 105;} | ... 1 more ... | { readonly name: "Trout"; readonly weight: 13;}, index: number) => { readonly name: "Marlin"; readonly weight: 105;} | ... 1 more ... | { readonly name: "Trout"; readonly weight: 13;}): Record<...>
Convert an array to a dictionary by mapping each item into a
dictionary key & value.
objectify(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) // => { Marlin: [marlin object], Bass: [bass object], ... }const const objectifiedByNameAndWeight: Record<"Marlin" | "Bass" | "Trout", 105 | 8 | 13>
objectifiedByNameAndWeight = import _
_.function objectify<{ 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 ({ readonly name: "Marlin"; readonly weight: 105;} | ... 1 more ... | { readonly name: "Trout"; readonly weight: 13;})[], getKey: (item: { readonly name: "Marlin"; readonly weight: 105;} | ... 1 more ... | { readonly name: "Trout"; readonly weight: 13;}, index: number) => "Marlin" | ... 1 more ... | "Trout", getValue?: (item: { readonly name: "Marlin"; readonly weight: 105;} | ... 1 more ... | { readonly name: "Trout"; readonly weight: 13;}, index: number) => 105 | ... 1 more ... | 13): Record<...>
Convert an array to a dictionary by mapping each item into a
dictionary key & value.
objectify( 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,) // => { Marlin: 105, Bass: 8, Trout: 13 }