在 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}'
在上面的程式碼片段中,我們使用瞭解構賦值並刪除了屬性one和two。
示例 2
在下面的示例中,我們刪除了name和bat屬性。解構運算子將建立一個包含所有屬性的新物件,除了被刪除的值。由於這是一個不可變的操作,因此刪除屬性不會影響原始物件。
<!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>
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP