JavaScript 物件中的條件成員插入:現代解決方案
而使用if 語句有條件地在物件中加入成員的傳統方法是簡單明了,它可能不慣用且冗長。更優雅的解決方案是在物件字面量中利用條件三元運算子 ?: 。但是,當條件評估為 false 時,此方法會導致未定義的成員值。
要解決此問題,更可靠的解決方案是使用擴充運算子 (...) 與邏輯 AND 短路評估結合使用。此技術允許有條件地在單一表達式中包含多個成員:
const a = { ...(someCondition1 && {b: 5}), ...(someCondition2 && {c: 6}), ...(someCondition3 && {d: 7}), // ... and so on };
在這種情況下,展開運算子將物件文字擴展為封閉物件 a 內的各個屬性。邏輯 AND 運算子 && 確保僅當其對應的條件評估為 true 時才包含每個屬性。
此方法透過短路評估將 false 條件強制為未定義,從而避免未定義的屬性值。因此,產生的物件將僅包含與滿足條件相對應的屬性。
以上是如何優雅地有條件地在 JavaScript 物件上新增成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!