在存档中有.merge功能。我想在ES6或ES7中实现同样的目标。
有这样的片段:
Object.assign({}, {key: 2}, {key: undefined})
我想接收{key: 2}
。目前我收到{key: undefined}
这是而不是深度合并。
有可能吗?如果是,那如何实现这一目标?
发布于 2021-08-06 00:01:03
如果只需要值而不需要对象,也可以使用对象析构:
const input = { a: 0, b: "", c: false, d: null, e: undefined };
const { a = 1, b = 2, c = 3, d = 4, e = 5, f = 6 } = input;
console.log(a, b, c, d, e, f);
// => 0, "", false, null, 5, 6
这只会覆盖缺失或未定义的值。
我经常将它用于函数参数默认值,如下所示:
function f(options = {}) {
const { foo = 42, bar } = options;
console.log(foo, bar);
}
f();
// => 42, undefined
f({})
// => 42, undefined
f({ foo: 123 })
// => 123, undefined
f({ bar: 567 })
// => 42, 567
f({ foo: 123, bar: 567 })
// => 123, 567
https://stackoverflow.com/questions/39977214
复制相似问题