點燈坊

失くすものさえない今が強くなるチャンスよ

如何刪除 Object 的 Property ?

Sam Xiao's Avatar 2021-08-15

實務上較少刪除 Object 的 Property,但若真的想刪除 Property,ECMAScript 提供了兩種方法。

Version

Ramda 0.27.1

delete

let data = {
  title: 'FP in JavaScript', price: 100
}

delete data.price

data // ?

data 包含 titleprice 兩個 property,想刪除 price property。

delete 可直接刪除 property,但會直接影響原本 Object。

delete000

Spread Operator

let data = {
  title: 'FP in JavaScript', price: 100
}

let { price, ...data_ } = data

data_ // ?

若想刪除 property 但又不影響原本 Object,可借用 ... spread operator 先列出要刪除的 property,剩下部分即為刪除後 Object。

delete001

Conclusion

  • 若想以更優雅的方式刪除 property 且不影響原本 Object,亦可使用 Ramda 的 omit