内部像在lodash中合并

韦斯利·巴纳德

我正在尝试在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章