在 JavaScript 中移除数组中所有对象的属性?


我们在本文中将执行的任务是“在 JavaScript 中移除数组中所有对象的属性”。

JavaScript 中的对象由一系列键值对组成。其中的一对键值被称为对象属性。对于属性的,可以使用任何数据类型,包括数字字符串数组对象等。

有两种方法:一种是可变的,使用 delete 运算符;另一种是不可变的,使用对象重构。让我们讨论一下这种方法。

delete 运算符

delete 运算符会同时删除属性的值和属性本身。删除后的属性需要重新添加才能再次使用。delete 运算符可用于对象属性。变量和函数不受影响。

示例

在以下示例中,我们使用 delete 方法删除数组中的对象。

<!DOCTYPE html>
<html>
<body>
   <p id = "tutorial"></p>
   <script>
      const arr = [
         {id: 1, name: 'teja', test: 'abd'},
         {id: 2, name: 'suri', test: 'msd'},
      ];
      arr.forEach(object => {
         delete object['name'];
      });
      document.getElementById("tutorial").innerHTML= JSON.stringify(arr);
   </script>
</body>
</html>

当脚本执行时,它将在 Web 浏览器上显示一个数组输出,其中使用 delete 方法(在用户执行脚本时触发)从实际数组中删除了对象。

对象解构

使用对象解构和剩余语法是另一种以不可变的方式移除属性的方法,而不会更改原始对象。

delete 运算符每次调用只能删除一个属性。因此,如果要移除 age 和 gender 属性,则需要进行两次 delete 调用。或者,您可以使用一次对象解构调用移除多个属性。

示例

考虑以下示例,我们使用对象解构来移除对象。

<!DOCTYPE html>
<html>
<body>
   <p id = "tutorial"></p>
   <script>
      const person = {
         firstName: "don",
         lastName: "bosco",
         gender: "Male",
         age: 21
      };
      const {age, gender, ...personTrimmed} = person;
      const json = JSON.stringify(personTrimmed);
      document.getElementById("tutorial").innerHTML=JSON.stringify(json);
   </script>
</body>
</html>

示例

让我们来看另一个示例,其中我们使用 delete 关键字在 JavaScript 中移除属性。

<!DOCTYPE html>
<html>
<body>
   <p id = "tutorial"></p>
   <script>
      var values = [
         {
            "firstName": "John",
            "lastName":"Smith"
         },
         {
            "firstName": "David",
            "lastName":"Miller"
         },
         {
            "firstName": "Adam",
            "lastName":"Smith"
         }
      ];
      values.forEach(function(obj){ delete obj.lastName });
      document.getElementById("tutorial").innerHTML=JSON.stringify(values);
   </script>
</body>
</html>

更新于: 2023-07-19

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告