Cách xóa thuộc tính khỏi đối tượng JavaScript

Có nhiều cách khác nhau để xóa một thuộc tính khỏi một đối tượng JavaScript. Tìm ra các lựa chọn thay thế và giải pháp được đề xuất

Cách chính xác về mặt ngữ nghĩa để xóa một thuộc tính khỏi một đối tượng là sử dụngdeletetừ khóa.

Đưa ra đối tượng

const car = {
  color: 'blue',
  brand: 'Ford'
}

bạn có thể xóa một thuộc tính khỏi đối tượng này bằng cách sử dụng

delete car.brand

Delete a property from an object in JavaScript

Nó cũng hoạt động như sau:

delete car['brand']
delete car.brand
delete newCar['brand']

Đặt thuộc tính thành không xác định

Nếu bạn cần thực hiện thao tác này theo cách rất tối ưu hóa, chẳng hạn như khi bạn đang thao tác trên một số lượng lớn các đối tượng trong các vòng lặp, một tùy chọn khác là đặt thuộc tính thànhundefined.

Do bản chất của nó, hiệu suất củadeletelà mộtchậm hơn rất nhiềuhơn là một sự chỉ định lại đơn giản choundefined, chậm hơn 50 lần.

Tuy nhiên, hãy nhớ rằng thuộc tính không bị xóa khỏi đối tượng. Giá trị của nó bị xóa, nhưng nó vẫn ở đó nếu bạn lặp lại đối tượng:

Iterate over the object

Sử dụngdeletevẫn rất nhanh, bạn chỉ nên xem xét loại vấn đề hiệu suất này nếu bạn có lý do chính đáng để làm như vậy, nếu không, nó luôn được ưu tiên để có ngữ nghĩa và chức năng rõ ràng hơn.

Xóa một thuộc tính mà không làm thay đổi đối tượng

Nếu mối quan tâm về khả năng thay đổi, bạn có thể tạo một đối tượng hoàn toàn mới bằng cách sao chép tất cả các thuộc tính từ cái cũ, ngoại trừ cái bạn muốn xóa:

const car = {
  color: 'blue',
  brand: 'Ford'
}
const prop = 'color'

const newCar = Object.keys(car).reduce((object, key) => { if (key !== prop) { object[key] = car[key] } return object }, {})

(xemObject.keys())

Create a new object without mutating the original

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: