在 JavaScript 中,动态向对象添加成员是很常见的。然而,当这些添加需要有条件时,最简单的方法通常会导致未定义的成员。
在尝试创建惯用代码时:
a = { b: (someCondition? 5 : undefined) };
将 b 成员添加到无论 someCondition 结果如何,都会返回一个对象,如果条件为 false,则其值未定义。
要解决此问题,可以采用更简洁的解决方案使用扩展运算符 (...) 和逻辑 AND 短路评估 (&&):
const a = { ...(someCondition && {b: 5}) }
此代码消除了对条件运算符的需要。展开运算符将花括号展开到 a 对象中,如果 someCondition 为 true,则添加 b 成员。逻辑 AND 短路求值确保仅在 someCondition 为 true 时才求值大括号,从而防止添加未定义的成员。
此方法可以轻松扩展以处理多个条件成员:
const a = { ...(conditionB && {b: 5}), ...(conditionC && {c: 5}), ...(conditionD && {d: 5}), ...(conditionE && {e: 5}), ...(conditionF && {f: 5}), ...(conditionG && {g: 5}), }
以上是如何在 JavaScript 中有条件地添加对象成员而不使用未定义的属性?的详细内容。更多信息请关注PHP中文网其他相关文章!