mergeDeepWith()
Как mergeDeep(), но когда на одном и том же ключе встречаются две неколлекции или несовместимые коллекции, используется функция merger, чтобы определить результирующее значение. Коллекции считаются несовместимыми, если они относятся к разным категориям между ключевыми, индексированными и множествами.
mergeDeepWith<C>(merger: (oldVal: unknown, newVal: unknown, key: unknown) => unknown,collection: C,...collections: Array<Iterable<unknown> | Iterable<[unknown, unknown]> | {[key: string]: unknown}>): C
Обсуждение
Функциональная альтернатива collection.mergeDeepWith(), которая также будет работать с обычными объектами и массивами.
const { mergeDeepWith } = require('immutable')
const original = { x: { y: 123 }}
mergeDeepWith(
(oldVal, newVal) => oldVal + newVal,
original,
{ x: { y: 456 }}
) // { x: { y: 579 }}
console.log(original) // { x: { y: 123 }}run it
© 2014–present, Lee Byron and other contributors
Licensed under the 3-clause BSD License.
https://immutable-js.com/docs/v4.2.1/mergeDeepWith()/