我已经研究过如何在省略空值的同时合并两个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),我收到一个异常。
谢谢!
答案 0 :(得分:12)
使用_.mergeWith
:
let merged = _.mergeWith(
{}, defaultValues, product,
(a, b) => b === null ? a : undefined
)