在JavaScript 中有條件地在物件上新增成員
問題:如何動態新增成員,取決於某些條件,在JavaScript 中?
初始方法:
一個簡單的方法是使用if 語句在滿足條件時加上成員:
var a = {}; if (someCondition) a.b = 5;
慣用解決方案:
要寫更慣用、簡潔的程式碼,請避免使用undefined 作為條件成員的值。相反,使用條件三元運算子:
a = { b: (someCondition? 5 : undefined) };
但是,如果不滿足條件,這種方法仍然會導致 b 成員被定義為未定義的值。
ES6使用邏輯AND 的解決方案:
對於具有多個成員的一般情況,ES6 引入了一個巧妙的解決方案,使用擴展運算符和邏輯AND 短路求值:
const a = { ...(someCondition && {b: 5}) }
邏輯AND (&&) 運算子如果任何操作數為false,則求值為 false。由於 JavaScript 中 undefined 為 false,因此如果 someCondition 為 false,則 {b: 5} 物件不會包含在展開運算子中,從而有效防止將 b 成員新增至物件中。
以上是如何有條件地將成員新增至 JavaScript 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!