有_.merge lodash 中的功能。我想在 ES6 或 ES7 中实现同样的事情。
有这个片段:
Object.assign({}, {key: 2}, {key: undefined})
我想接收{key: 2}
。目前我收到 {key: undefined}
这不是深度合并。
这可能吗?如果是,那么如何实现?
最佳答案
您无法通过直接使用 Object.assign
来实现这一点,因为每个下一个对象都会为上一个合并重写相同的键。唯一的方法是使用一些手工制作的函数来过滤传入的对象。
function filterObject(obj) {
const ret = {};
Object.keys(obj)
.filter((key) => obj[key] !== undefined)
.forEach((key) => ret[key] = obj[key]);
return ret;
}
关于javascript - (_.merge in ES6/ES7)Object.assign without overriding undefined values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39977214/