You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

父对象可能为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:44:48