首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >(ES6/ES7中的_.merge)Object.assign而不覆盖未定义的值

(ES6/ES7中的_.merge)Object.assign而不覆盖未定义的值
EN

Stack Overflow用户
提问于 2016-10-11 12:26:06
回答 6查看 8.8K关注 0票数 23

在存档中有.merge功能。我想在ES6或ES7中实现同样的目标。

有这样的片段:

代码语言:javascript
运行
复制
Object.assign({}, {key: 2}, {key: undefined})

我想接收{key: 2}。目前我收到{key: undefined}

这是而不是深度合并。

有可能吗?如果是,那如何实现这一目标?

EN

Stack Overflow用户

发布于 2021-08-06 00:01:03

如果只需要值而不需要对象,也可以使用对象析构:

代码语言:javascript
运行
复制
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

这只会覆盖缺失或未定义的值。

我经常将它用于函数参数默认值,如下所示:

代码语言:javascript
运行
复制
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
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39977214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档