2016-10-03 3 views
1

Ich versuche, zwei Objekte zu unterscheiden und nur Updates erhalten.Diffing zwei Objekte und bekomme nur Updates

let alpha = { 
brown: true, 
green: true, 
blue: true 
} 

let beta = { 
green: false, 
} 

doSomething(alpha, beta) // => {green: false} 

let alpha = { 
brown: true, 
green: true, 
blue: true 
} 

let beta = { 
green: true, 
} 

doSomething(alpha, beta) // => false 

Bis jetzt ist das, was ich habe.

let alphaSameKeys = pick(alpha, Object.keys(beta)) 
console.log(alpha) // => {green: true} 

Wie beende ich das mit lodash?

+0

Ich würde in https://github.com/benjamine/jsondiffpatch schauen – Enkode

Antwort

0

Einfaches flaches Diff.

export function diffObject (source, incoming) { 
    let res = pickBy(incoming, (value, key) => { 
    if (value !== source[key]) return true 
    if (!source[key]) return true 
    return false 
    }) 
    if (!size(res)) return false 
    return res 
}