如何從 JavaScript 物件中刪除屬性
有多種方法可以從 JavaScript 物件中刪除屬性。找出替代方案和建議的解決方法。
從物件中刪除屬性的語意正確的方式是使用 delete
關鍵字。
給定以下物件
1 | const car = { |
您可以使用以下方式從物件中刪除屬性
1 | delete car.brand |
也可以這樣表達:
1 | delete car['brand'] |
將屬性設置為 undefined
如果您需要以非常優化的方式執行此操作,例如在循環中對大量物件進行操作時,那麼另一個選擇是將屬性設置為 undefined
。
由於 delete
的性質,它的性能比簡單地將屬性重新賦值為 undefined
要慢很多,超過 50 倍。
但是,請記住,該屬性並未從物件中刪除。它的值被清除,但如果您遍歷物件,它仍然存在:
使用 delete
仍然非常快速,只有在有非常好的理由時才應該考慮這種性能問題,否則最好具有更清晰的語意和功能。
在不改變物件的情況下刪除屬性
如果 mutability 是一個關注點,您可以通過從舊物件複製所有屬性(除去要移除的屬性)來創建一個完全新的物件:
1 | const car = { |
(參見 Object.keys()
)
tags: [“JavaScript”, “物件”, “刪除屬性”]