如何在使用 lodash 省略空值的同时合并两个对象
Posted
技术标签:
【中文标题】如何在使用 lodash 省略空值的同时合并两个对象【英文标题】:How do I merge two objects while omitting null values with lodash 【发布时间】:2017-10-17 10:56:33 【问题描述】:我研究了如何在省略空值的同时合并两个 javascript 对象,到目前为止,我尝试过使用合并、分配、克隆但没有成功。
这是我的测试(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 框架,当我在某些输入(使用 v-model)上有这些空属性时,我收到一个异常。
谢谢!
【问题讨论】:
【参考方案1】:使用_.mergeWith
:
let merged = _.mergeWith(
, defaultValues, product,
(a, b) => b === null ? a : undefined
)
Updated fiddle
【讨论】:
为什么我们传递一个空对象作为第一个参数? @Ernest:merge
和 mergeWith
修改并返回它们的第一个参数,而不是创建一个新对象并返回它。以上是关于如何在使用 lodash 省略空值的同时合并两个对象的主要内容,如果未能解决你的问题,请参考以下文章