如何在使用lodash省略空值的同时合并两个对象

时间:2017-05-17 20:12:09

标签: javascript object merge lodash

我已经研究过如何在省略空值的同时合并两个JavaScript对象,到目前为止我已经尝试过使用merge,assign,clone而没有成功。

这是我的测试(JSFiddle):

let defaultValues = {code: '', price: 0, description: ''}
let product = {code: 'MyCode', price: null, description: 'Product Description'}

//Merge two objects
let merged = _.merge({}, defaultValues, product)
console.log(merged)

//My result
{code: 'MyCode', price: null, description: 'Product Description'}

//My expected result
{code: 'MyCode', price: 0, description: 'Product Description'}

我使用VueJS框架,当我在某些输入上使用这些null属性时(使用v-model),我收到一个异常。

谢谢!

1 个答案:

答案 0 :(得分:12)

使用_.mergeWith

let merged = _.mergeWith(
    {}, defaultValues, product,
    (a, b) => b === null ? a : undefined
)

Updated fiddle