Conditional Member Insertion in JavaScript Objects: A Modern Solution
While the traditional approach of conditionally adding members to an object by using if statements is straightforward, it can be unidiomatic and verbose. A more elegant solution is to leverage the conditional ternary operator ?: within the object literal. However, this approach results in undefined member values when the condition evaluates to false.
To resolve this issue, a more robust solution is to employ the spread operator (...) in conjunction with logical AND short circuit evaluation. This technique allows for the conditional inclusion of multiple members within a single expression:
const a = { ...(someCondition1 && {b: 5}), ...(someCondition2 && {c: 6}), ...(someCondition3 && {d: 7}), // ... and so on };
In this scenario, the spread operator expands the object literals into individual properties within the enclosing object a. The logical AND operator && ensures that each property is only included if its corresponding condition evaluates to true.
This approach avoids undefined property values by coercing false conditions to undefined through the short circuit evaluation. As a result, the resulting object will only contain properties that correspond to met conditions.
The above is the detailed content of How Can I Conditionally Add Members to JavaScript Objects Elegantly?. For more information, please follow other related articles on the PHP Chinese website!