在 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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.