Skip to content

merge

Combine two lists overriding items in the first

210 bytes

Usage

Given two arrays of items and an identity function, returns the first list with all items from the second list where there was a match.

import * as
import _
_
from 'radashi'
const
const gods: {
name: string;
power: number;
}[]
gods
= [
{
name: string
name
: 'Zeus',
power: number
power
: 92,
},
{
name: string
name
: 'Ra',
power: number
power
: 97,
},
]
const
const newGods: {
name: string;
power: number;
}[]
newGods
= [
{
name: string
name
: 'Zeus',
power: number
power
: 100,
},
]
const
const mergedGods: {
name: string;
power: number;
}[]
mergedGods
=
import _
_
.
merge<{
name: string;
power: number;
}>(prev: readonly {
name: string;
power: number;
}[], array: readonly {
name: string;
power: number;
}[], toKey: (item: {
name: string;
power: number;
}) => any): {
name: string;
power: number;
}[]
export merge

Given two arrays of the same type, iterate the first list and replace items matched by the matcher function in the first place. The given arrays are never modified.

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

@example

merge(
[{id: 1}, {id: 2}],
[{id: 3}, {id: 1, name: 'John'}],
(obj) => obj.id
)
// [{id: 1, name: 'John'}, {id: 2}]

@version12.1.0

merge
(
const gods: {
name: string;
power: number;
}[]
gods
,
const newGods: {
name: string;
power: number;
}[]
newGods
,
f: {
name: string;
power: number;
}
f
=>
f: {
name: string;
power: number;
}
f
.
name: string
name
) // => [{name: "Zeus" power: 100}, {name: "Ra", power: 97}]