如何在 JavaScript 中移除对象的键/属性

2025年3月18日 | 阅读时长 4 分钟

引言

JavaScript 对象由属性组成,这些属性只是键值对。本质上,属性由一对键和值组成,可以代表任何类型的实体。即使函数也可以作为任何对象中的值或键。无论如何,在本节中,我们将讨论如何删除 JavaScript 对象中的键。

删除键时,与之关联的值会自动删除。因此,删除键仅仅意味着删除该属性。现在,JavaScript 中有三种删除对象键的方法。让我们快速了解一下。

如果需要,可以擦除 JavaScript 对象中的属性。我们可以使用三个简单的步骤来快速擦除任何对象属性。第一个技术利用 delete 操作符,这是 JavaScript 中的一个特殊操作符;第二个方法利用 Object Destructuring;第三个方法利用 Reflect.deleteProperty() 方法。

1. 使用 Delete 操作符从 JavaScript 对象中删除属性

delete 操作符是 JavaScript 中的一个特殊操作符。如果我们想从 JavaScript 对象中删除一个键,请使用 delete 操作符。delete 操作符的含义正如其名:它从对象中删除指定的属性。虽然如此,但我们必须首先访问该属性才能删除它。可以使用点属性访问器或方括号属性访问器来访问对象属性。

使用点方法删除

语法

示例

输出

{ name: "saswat", age: 26, designation: "Software Engineer" }
    age: 26
    designation: "Software Engineer"
    name: "saswat"

让我们以基于点的方式删除 age 属性。

输出

{ name: "saswat", designation: "Software Engineer" }
    designation: "Software Engineer"
    name: "saswat"

说明

从上面的输出可以看出,delete 操作符成功地删除了对象 emp 的属性 age (点方式)

使用方括号方法删除

语法

让我们使用方括号从同一个 emp 对象中删除 designation 属性。

输出

{ name: "saswat", age: 26 }
    name: "saswat"
    age: 26

说明

从上面的输出可以看出,delete 操作符成功地删除了对象 emp 的属性 designation (方括号方式)

2. 使用对象解构从 JavaScript 对象中删除属性

对象解构也可以用来删除对象中的属性,但有一个陷阱。它不是修改原始对象,而是创建一个不包含已删除属性的新对象。通过这种方式,原始对象得以保留(不改变)。

语法

示例

输出

{ brand: "HP", year: 2020 }
{ brand: "HP", model: "Notebook", year: 2020 }

说明

在上述示例中,我们使用对象 解构 从对象中删除了一个属性。当我们使用对象解构从原始对象 laptop 中删除 model 属性时,我们得到了新的对象 myLaptop,其中不包含该属性。再次,输出表明原始对象保持不变。

3. 使用 Reflect.deleteProperty() 方法从 JavaScript 对象中删除属性

Reflect.deleteProperty() 方法由 JavaScript 的内置对象之一 'Reflect' 提供。此方法类似于我们已经讨论过的 delete 操作符的函数形式。

示例

输出

{ car1: 'Honda', car3: 'Toyota' }

说明

在上面的示例中,有一个名为 "cars" 的对象,它有三个属性。为了从该对象中删除 car2 属性,我们使用了 Reflect.deleteProperty() 方法。输出表明成功地从 cars 对象中删除了 car2 属性。

最后,我们想说,无论使用 delete 操作符 还是 Reflect.deleteProperty() 方法,它们在执行相同工作时具有相似的时间复杂度,因此没有区别。然而,使用 Object Destructing 需要更多的时间。因此,由于其简单的语法和低时间复杂度,delete 操作符是删除 JavaScript 对象键的最流行方法。

结论

JavaScript 对象由属性组成,这些属性只是键值对。删除键时,与之关联的值会自动删除。