Skip to content

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

  1. array: The input array to be converted into an object.
  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 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.

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

@example

objectify([1, 2, 3], (n) => '#' + n)
// { '#1': 1, '#2': 2, '#3': 3 }
objectify(
[{id: 1, name: 'John'}, {id: 2, name: 'Jane'}],
(obj) => obj.id,
(obj) => obj.name
)
// { 1: 'John', 2: 'Jane' }

@version12.1.0

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.

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

@example

objectify([1, 2, 3], (n) => '#' + n)
// { '#1': 1, '#2': 2, '#3': 3 }
objectify(
[{id: 1, name: 'John'}, {id: 2, name: 'Jane'}],
(obj) => obj.id,
(obj) => obj.name
)
// { 1: 'John', 2: 'Jane' }

@version12.1.0

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 }