我正在尝试在node.js中与lodash合并对象。合并效果很好,因为它不会覆盖导致未定义的属性对象。
但是,我希望它仅覆盖目标对象中存在的对象的方法。请参见下面的示例:
var e1 = {
name: 'Jack',
surname: 'Root'
};
合并
var e2 = {
name: 'Rex',
surname: undefined,
age: 24
};
当前结果:
{
name: 'Rex',
surname: 'Root',
age: 24
}
结果我想要:
{
name: 'Rex',
surname: 'Root'
}
因此,我想让源对象仅覆盖两个对象中都存在的属性,并且前提是它们没有未定义。
我尝试搜索其他功能,但只发现合并和分配可以完成类似的事情。但是可惜这并不是我想要的。
其背后的整个想法是构建一些方法,该方法将从Web表单获取对象字段,然后将它们绑定到mongoose.js模型对象以进行持久化。
这是为了避免始终必须手动将每个属性绑定到另一个对象。
我无法用lodash方法找到一种非常方便的方法来进行此操作,但是使用香草并不是很难:
// Only loop over e1 values
for (var e1k in e1) {
// Use e2 value if it exists, otherwise stick with what is already there
e1[e1k] = e2[e1k] || e1[e1k];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句