JavaScript 如何从对象中删除键/属性

JavaScript 如何从对象中删除键/属性

介绍:

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

当键被移除时,与之关联的值会自动被删除。所以,删除键只是简单地删除那个属性。在JavaScript中,现在有三种方法可以删除对象的键。让我们快速了解一下每种方法。

如果有必要,JavaScript对象中的属性可以被删除。我们可以使用三个简单的方法来快速删除任何对象属性。第一种方法使用了 delete 操作符,这是JavaScript中的一种特殊操作符;第二种方法使用了 对象解构 ,第三种方法使用了 Reflect.deleteProperty() 方法。

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

delete操作符是JavaScript中的一种特殊操作符。如果我们想从JavaScript对象中删除一个键,可以使用 delete操作符 。delete操作符正如其名称所示,它会从对象中删除提供的属性。但是,在删除之前,我们必须先访问该属性。可以使用点属性访问器或方括号属性访问器来访问对象属性。

使用点法删除

语法:

delete object.property;

示例:

let emp = {
    name: "saswat",
    age: 26,
    designation: "Software Engineer",
}
console.log(emp);

输出:

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

让我们以点的方式删除年龄属性。

delete emp.age;
console.log(emp);

输出:

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

解释:

从上面的输出中可以看出,删除操作符在删除 emp 对象的属性 age (点方式)时起到了作用。

使用方括号方法进行删除

语法:

delete object['property'];

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

let emp = {
    name: "saswat",
    age: 26,
    designation: "Software Engineer",
}
delete emp['designation'];
console.log(emp);

输出:

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

解释:

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

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

对象解构 也可用于从对象中删除属性,但有一个问题。不是修改原始对象,而是创建一个不包含已删除属性的新对象。通过这种方式,原始项被保留(不变)。

语法:

const{ propertyToRemove, ...newObject } = OriginalObject;

示例:

const laptop = {
    brand: "HP",
    model: "Notebook",
    year: 2020,
}

const {model, ...newLaptop} = laptop;
console.log(newLaptop);
console.log(laptop);

输出:

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

解释:

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

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

Reflect.deleteProperty()方法由内置的JavaScript对象Reflect提供。这种方法类似于我们讨论过的delete运算符的函数形式。

示例:

const cars = {
  car1: "Honda",
  car2: "Tata",
  car3: "Toyota"
};

Reflect.deleteProperty(cars, 'car2');

console.log(cars);

输出:

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

说明:

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

最后,我们想说的是,无论您使用 delete运算符 还是 Reflect.deleteProperty() 方法都没什么区别,因为它们在时间复杂度上基本相同。然而,使用 对象解构 需要更多时间。因此,由于其简单的语法和低的时间复杂度,delete运算符是从JavaScript对象中删除键的最流行方法。

结论

JavaScript对象由属性组成,即键值对。当键删除时,关联的值会自动删除。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程