JavaScript 对象中的条件成员插入:现代解决方案
而使用 if 语句有条件地向对象添加成员的传统方法是简单明了,它可能不惯用且冗长。更优雅的解决方案是在对象字面量中利用条件三元运算符 ?: 。但是,当条件评估为 false 时,此方法会导致未定义的成员值。
要解决此问题,更可靠的解决方案是使用扩展运算符 (...) 与逻辑 AND 短路评估结合使用。此技术允许有条件地在单个表达式中包含多个成员:
const a = { ...(someCondition1 && {b: 5}), ...(someCondition2 && {c: 6}), ...(someCondition3 && {d: 7}), // ... and so on };
在这种情况下,展开运算符将对象文字扩展为封闭对象 a 内的各个属性。逻辑 AND 运算符 && 确保仅当其相应的条件评估为 true 时才包含每个属性。
此方法通过短路评估将 false 条件强制为未定义,从而避免未定义的属性值。因此,生成的对象将仅包含与满足条件相对应的属性。
以上是如何优雅地有条件地向 JavaScript 对象添加成员?的详细内容。更多信息请关注PHP中文网其他相关文章!