如何从 JavaScript 对象中删除属性?

如何从 JavaScript 对象中删除属性?

如何从 JavaScript 对象中删除属性?

javascriptweb developmentfront end technology更新于 2024/5/16 23:32:00

在本教程中,我们将介绍几种从 JavaScript 对象中删除属性的方法。并比较它们以了解在给定上下文中哪种方法更合适。

让我们继续讨论这个问题。

使用 delete 运算符

在这里,delete 运算符一次从对象中删除一个键。delete 运算符不会直接清除内存。

delete 关键字仅适用于对象。我们不能将它用于变量或函数。我们不应该在预定义的 JavaScript 对象属性上使用 delete 关键字,因为它可能会出错。如果我们尝试访问它,deleted 属性将显示 undefined。

delete 操作是可变的,因为它会修改实际对象。但这是从对象中删除属性的正确方法。

用户可以按照以下语法使用此方法。

语法

//静态属性

delete object.property;

//动态属性

delete object[property];

第一种方法是在属性已知时使用。第二种是在属性是运行时值时使用。

属性

object − 对象的名称。

property − 要删除的属性的名称。

示例

在此程序中,我们有一个名为 employee 的 JavaScript 对象。我们使用 delete 关键字从此对象中删除 age 属性。

Remove a property from a JavaScript object using the delete keyword

通过将属性值设置为"undefined"

当我们使用大量循环时,可以选择此选项。通过将属性值设置为"undefined",我们使删除过程达到最佳状态。删除操作比使用"undefined"的简单赋值慢 50 倍。

实际上,属性并未被删除。它只是被清除了。

语法

object.property = undefined;

在这里,我们将 undefined 分配给对象的属性。

示例

在此程序中,我们的对象名称为 color。使用上面的赋值语法,我们从 color 对象中删除 place 属性。

Remove a property from a JavaScript object

setting the property value to undefined

使用对象解构

这里的想法很简单。我们应该将对象解构为要删除的属性。然后将剩余的属性保存在另一个对象中。

对象解构是从对象中提取数据到新变量的过程。对象解构是一种不可变方法,因为它不会更改实际对象,而是创建另一个对象来获取除要删除的属性之外的所需属性。

主要优点是此方法一次可以删除多个属性。

语法

//静态属性

const {prop, ...remainObj} = obj

//动态属性

const name = 'prop';

const {[name]: removedProperty, ...remainObj} = obj

这里,当我们知道属性名称时,使用第一种语法。第二种语法用于属性名称动态变化的情况。

参数

prop − 我们需要删除的属性。

remainObj − 删除特定属性后的对象。

obj − 主对象。

name − 运行时使用属性名称的变量。

removedProperty − 语法中的内置关键字

示例

在此示例中,我们有 person 对象。我们使用扩展运算符删除 position 和属性。

Remove a property from a JavaScript object

Using object destructuring with spread operator

Object before delete:

Object after deleting property- position

使用 reduce() 方法

此处,reduce() 是一个内置数组函数。此函数的输入是一个集合,而归约函数是一个参数。

该方法循环遍历所有元素并修改累加器,累加器的作用类似于新对象。

语法

const newObj = Object.keys(actualObj).reduce((accumulator, key) => {

if(key!=="property"){

accumulator[key] = actualObj[key]

}

return accumulator;

}, {})

此处,累加器归约函数逻辑用于删除属性。

属性

actualObj − JSON 对象。

累加器 − 如果键小于累加器值,键值将成为下一个累加器。

key − 当前值 = 键。

示例

在此示例中,我们的对象是宠物。我们将从此对象中单独删除 gift 属性。reduce 方法累加器和键值比较在每个循环中发生。最后,我们得到没有 gift 属性的对象。

Remove a property from a JavaScript object using the

reduce()method

Object before delete:

Object after deleting property

本教程帮助我们学习如何删除 JavaScript 对象的属性。

delete 方法很简单。将 undefined 分配给属性值是一种更糟糕的方法。解构语法是一种好方法,因为它不会修改实际对象。

最后一种方法是 reduce 函数,这是一个不错的选择。用户可以根据需要选择任何方法。

相关文章

如何使用 JavaScript 查找三角形的面积?

如何使用原生 JavaScript 查找 div 的宽度?

如何查找所有元素是否包含相同的类?

如何使用 JavaScript 找到图像的平均颜色?

如何在 JavaScript 中查找 HTML 元素的位置?

如何在 JavaScript 中过滤嵌套对象?

如何在 JavaScript 中根据字段值过滤对象?

如何使用 object() 构造函数创建 JavaScript 对象?

如何使用 JavaScript 将消息打印到错误控制台?

如何打印 JavaScript 对象的内容?

打印

下一节 ❯❮ 上一节