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

JavaScript中对象可能为null或undefined时设置属性的更简洁方法

简化实现方案

你需要的是为errors对象设置新的表级错误,同时保留已有的行级错误不被覆盖,以下是几种更简洁的实现方式:

1. ES2020+ 单行写法(推荐)

errors = { ...errors ?? {}, table: { title: 'You must select at least one item to be returned.' } };

逻辑说明:

  • 空值合并运算符??会在errors为null/undefined时返回空对象,否则返回原errors对象
  • 扩展运算符...将原对象的所有属性(比如存储行级错误的rows属性)完整复制到新对象中
  • 后续显式声明的table属性会覆盖原有对象中可能存在的旧表级错误,不会影响其他属性,完全避免了行级错误被覆盖的问题

2. 兼容旧JS环境写法

如果项目暂不支持ES2020的空值合并语法,可以用逻辑或运算符替代:

errors = { ...(errors || {}), table: { title: 'You must select at least one item to be returned.' } };

3. 直接修改原对象写法

如果你不想生成新的对象,只需要在原对象基础上修改,可以用空值赋值运算符简化原有判断逻辑:

errors ??= {};
errors.table = { title: 'You must select at least one item to be returned.' };

以上几种写法的运行效果和你当前使用的if/else逻辑完全一致,代码更简洁易读。

内容的提问来源于stack exchange,提问作者jbyrd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:30:03