在 JavaScript 中從 JSON 物件中刪除屬性


一個JSON(JavaScript 物件表示法)物件總是用花括號 {} 括起來。值必須是有效的 JSON 資料型別,鍵必須是字串。JSON 支援以下資料型別:數字、字串、物件、布林值、陣列和空值。

鍵和值之間必須用冒號 (":") 分隔。逗號分隔每個鍵值對。以下是 JSON 物件的語法 -

JSONObject = {}

以下是 JavaScript 中 JSON 物件的基本宣告 -

JSONObject = { 
   "name" : "Suriya",  
   "designation" : "Actor",  
   "State" : "Tamil Nadu", 
   "Recent_film" : "Vikram" 
};

輸入輸出場景

假設我們有一個 JSON 物件,其中包含鍵和值,並且執行了對該物件屬性的刪除操作。假設在下面的示例中,我們刪除了名為“Recent_film”的屬性。

Input = JSONObject = { 
   "name" : "Suriya",  
   "designation" : "Actor",  
   "State" : "Tamil Nadu", 
   "Recent_film" : "Vikram" 
}; 
Output = {"name" : "Suriya", "designation" : "Actor", State" : "Tamil Nadu"} 

我們可以使用點(“.”)表示法訪問物件值。還可以使用方括號表示法([])。

示例

使用 Delete 運算子

Delete 運算子是刪除物件屬性的最簡單方法。如果我們想要刪除物件中的多個屬性,我們需要多次使用此運算子。

在下面的示例中,我們建立了一個帶有鍵和值的 JSON 物件。透過使用 delete 運算子,我們刪除了物件中的name值。

<!DOCTYPE html> <html> <head> <title>Deleting property of an JSON object.</title> </head> <body> <p id="para"></p> <script> var Cricketer = { 'name': "Dhoni", 'role': "Keeper-batsmen", 'age': 41, 'bat': "Right", }; delete Cricketer.role; document.getElementById("para").innerHTML = Cricketer.name + " age" + " is " + Cricketer.role; </script> </body> </html>

示例

使用解構賦值

解構賦值是 JavaScript 表示式中的語法,它將陣列中的值或物件中的屬性擴充套件到不同的變數中。這不會更改原始物件和引用,而是會建立一個新的物件引用。

const numbers = { 
   'one' : 1, 
   'two' : 2, 
   'three' : 3 
};  
const {one, two, ...excluding} = numbers;  
console.log(JSON.stringify(excluding)); 
// output: '{"three":3}'  

在上面的程式碼片段中,我們使用瞭解構賦值並刪除了屬性onetwo

示例 2

在下面的示例中,我們刪除了namebat屬性。解構運算子將建立一個包含所有屬性的新物件,除了被刪除的值。由於這是一個不可變的操作,因此刪除屬性不會影響原始物件。

<!DOCTYPE html> <html> <head> <title>Deleting property of an JSON object.</title> </head> <body> <p id = "para"> </p> <script> var Cricketer = { 'name': 'Kohli', 'role': 'Batsmen', 'age': 34, 'bat' : 'Right', } const { name, bat, ...excluding } = Cricketer; document.getElementById("para").innerHTML ="The JSON object after deleting name and bat will be:" + JSON.stringify(excluding); </script> </body> </html>

示例

使用 reduce 方法

在下面的示例中,我們使用 reduce 方法刪除了物件的特定屬性。

<!DOCTYPE html> <html> <head> <title>Deleting property of an JSON object.</title> </head> <body> <p id = "para"> </p> <script> var Cricketer = { 'name': 'Kohli', 'role': 'Batsmen', 'age': 34, 'bat' : 'Right', } const exceptbat = Object.keys(Cricketer).reduce((acc, prop) => { if (prop !== 'bat') { acc[prop] = Cricketer[prop] } return acc }, {}) document.getElementById("para").innerHTML ="The JSON object after deleting name and bat will be:" + JSON.stringify(exceptbat); </script> </body> </html>

示例

使用 Reflect delete property

Reflect.deleteProperty() 方法就像delete運算子一樣。此方法用於刪除屬性。

在下面的示例中,我們使用Reflect.deleteProperty()刪除了物件屬性,並將物件的“role”鍵作為引數傳遞給了此方法。

<!DOCTYPE html> <html> <head> <title>Deleting property of an JSON object.</title> </head> <body> <button onClick = "func()"> click to delete property</button> <p id="para"></p> <script> var Cricketer = { 'name': "Rohit sharma", 'role': "batsmen", 'age': 33, 'bat': "Right", }; function func(){ Reflect.deleteProperty(Cricketer, 'role'); document.getElementById("para").innerHTML = Cricketer.name + " role" + " is " + Cricketer.role; }; </script> </body> </html>

示例

使用 for-in 方法

在下面的示例中,我們建立了一個 JSON 物件並遍歷了該物件。我們還建立了一個空物件,用於儲存除已刪除元素之外的物件屬性。

<!DOCTYPE html> <html> <head> <title>Deleting property of an JSON object.</title> </head> <body> <button onClick = "func()"> Click me! </button> <p id="para"></p> <script> const Cricketer = { 'name': "Rohit sharma", 'role': "batsmen", 'age': 33, 'bat': "Right", }; function func(){ let newJSONobj = {} for (const prop in Cricketer) { if (prop !== 'age') { newJSONobj[prop] = Cricketer[prop] } } document.getElementById("para").innerHTML = "The properties after removing age will be: " + JSON.stringify(newJSONobj); }; </script> </body> </html>

更新於: 2022-09-23

6K+ 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.