conductor
Why I'm building conductorGitHub
v1.5.0
v1.5.0
  • Introduction
  • Overview
    • Introduction
    • Core concepts
  • API reference
    • always
    • append
    • apply
    • arity
    • branch
    • capitalize
    • compose
    • concat
    • curry
    • curryN
    • delay
    • dump
    • entries
    • equals
    • equalsBy
    • factory
    • filter
    • findIndex
    • flatten
    • flip
    • forEach
    • get
    • head
    • ifElse
    • identity
    • into
    • isPromise
    • iterate
    • join
    • keys
    • map
    • merge
    • mergeBy
    • next
    • not
    • pluck
    • prepend
    • random
    • reduce
    • replace
    • slice
    • some
    • split
    • take
    • then
    • toLowerCase
    • transduce
    • transformers
      • transformers/filter
      • transformers/map
    • type
    • upsert
    • values
  • Guides
    • example use cases
    • checkGuards
Powered by GitBook
On this page
  • description
  • examples
  1. API reference

mergeBy

PreviousmergeNextnext

Last updated 6 years ago

Available since v1.4.0

description

mergeBy works like , but uses an additional parameter (getter) to retrieve the value used for comparison. This additional parameter can be provided as a Function, or a String in which case mergeBy will retrieve the value associated to the provided key.

examples

providing a key name as a string

import { mergeBy } from 'conductor'

const arr1 = [{ id: 1, name: 'Anakin' }]
const arr2 = [{ id: 1, name: 'Darth Vader', side: 'dark' }]

mergeBy('id', obj1, obj2) // [{ id: 1, name: 'Darth Vader', side: 'dark' }]
mergeBy('name', obj1, obj2)
// [
//    { id: 1, name: 'Anakin' },
//    { id: 1, name: 'Darth Vader', side: 'dark' }
// ]

providing a function

import { get, mergeBy } from 'conductor'

const arr1 = [{ id: 1, name: 'Anakin' }]
const arr2 = [{ id: 1, name: 'Darth Vader', side: 'dark' }]

mergeBy(get('id'), obj1, obj2) // [{ id: 1, name: 'Darth Vader', side: 'dark' }]
mergeBy(get('name'), obj1, obj2)
// [
//    { id: 1, name: 'Anakin' },
//    { id: 1, name: 'Darth Vader', side: 'dark' }
// ]
merge