Whe*_*ard 5 javascript merge node.js lodash
我试图在node.js中与lodash进行对象合并.合并很有效,因为它不会覆盖导致未定义的属性对象.
但是,我希望它的方法只覆盖目标对象中存在的对象.见下面的例子:
var e1 = {
name: 'Jack',
surname: 'Root'
};
Run Code Online (Sandbox Code Playgroud)
合并
var e2 = {
name: 'Rex',
surname: undefined,
age: 24
};
Run Code Online (Sandbox Code Playgroud)
目前的结果:
{
name: 'Rex',
surname: 'Root',
age: 24
}
Run Code Online (Sandbox Code Playgroud)
结果我想:
{
name: 'Rex',
surname: 'Root'
}
Run Code Online (Sandbox Code Playgroud)
所以我想要获得的是源对象只覆盖两者中存在的属性,并且只有在它们未被定义时才会被覆盖.
我尝试搜索其他函数,但只发现merge和assign来做类似的事情.但唉,这不完全是我想要的.
这背后的整个想法是构建一些方法,从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];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |