父对象可能为undefined时,如何设置嵌套对象属性?
嵌套属性设置的简洁实现方案
以下几种方式比你提供的写法更简洁,且能安全处理父对象undefined的情况:
短路赋值+直接赋值(推荐)
先通过空值合并赋值运算符确保父对象存在,再直接设置属性,逻辑直观且高效:foo.bar ??= {}; foo.bar.baz = true;注:
??=仅在foo.bar为null或undefined时才会赋值为空对象,不会覆盖已有的非空对象。简化对象扩展写法
在你原有思路基础上,用空值合并运算符简化父对象的默认值处理,一行完成:foo.bar = { ...(foo.bar ?? {}), baz: true };三元运算符紧凑写法
用三元判断实现一行赋值,适合追求极致紧凑的场景:foo.bar ? (foo.bar.baz = true) : (foo.bar = { baz: true });
内容的提问来源于stack exchange,提问作者KovacsPrime
相关产品推荐
相关产品推荐

