一、js刪除對象的某個屬性
在JavaScript中,刪除對象的某個屬性可以使用delete關鍵字。delete關鍵字用於刪除對象的屬性,但是不會影響對象原型中的屬性。
//定義一個對象 let obj = {name: "Lucy", age: 25, gender: "female"}; //刪除對象的某個屬性 delete obj.age; console.log(obj); //輸出結果:{name: "Lucy", gender: "female"}
在上面的示例中,我們使用delete關鍵字刪除了對象obj的屬性age,這時候obj只剩下name和gender這兩個屬性了。
二、js刪除對象中的某個屬性
有時候我們需要刪除嵌套在對象中的屬性,可以使用以下方法。
//定義一個嵌套的對象 let obj = { name: "Lucy", age: 25, address: { province: "Hunan", city: "Changsha", street: "No.123" } }; //刪除對象的某個屬性 delete obj.address.street; console.log(obj); //輸出結果:{name: "Lucy", age: 25, address: {province: "Hunan", city: "Changsha"}};
在上面的示例中,我們使用delete關鍵字刪除了對象obj中address屬性中的street屬性,這時候obj中的address屬性只剩下province和city這兩個屬性了。
三、js對象刪除某個屬性的方法
另一種刪除對象的某個屬性的方法是使用Object.defineProperty()方法來重新定義屬性並將其設置為undefined,如下所示:
//定義一個對象 let obj = {name: "Lucy", age: 25, gender: "female"}; //刪除對象的某個屬性 Object.defineProperty(obj, "age", {value: undefined}); console.log(obj); //輸出結果:{name: "Lucy", age: undefined, gender: "female"}
在上面的示例中,我們使用Object.defineProperty()方法將屬性age的值設置為undefined,實現了刪除屬性age的目的。
四、js刪除對象屬性的其他方法
除了上述兩種方法,還有其他方法可以刪除對象的屬性。
1、使用Object.keys()和Array.prototype.filter()方法
//定義一個對象 let obj = {name: "Lucy", age: 25, gender: "female"}; //用Object.keys()和Array.prototype.filter()方法刪除對象屬性 Object.keys(obj).filter(key => key !== "age").forEach(key => { delete obj[key]; }); console.log(obj); //輸出結果:{age: 25}
在上面的示例中,我們使用Object.keys()方法獲取對象obj的所有屬性名,然後使用Array.prototype.filter()方法篩選出不需要的屬性,最後用forEach()方法和delete關鍵字刪除屬性。
2、使用lodash庫中的omit()函數
//引入lodash庫 const _ = require('lodash'); //定義一個對象 let obj = { name: "Lucy", age: 25, gender: "female" }; //用omit()函數刪除對象屬性 obj = _.omit(obj, ['age']); console.log(obj); //輸出結果:{name: "Lucy", gender: "female"}
在上面的示例中,我們使用lodash庫中的omit()函數刪除對象obj的age屬性,最後輸出刪除後的對象。
五、js刪除對象中的某一項
除了刪除對象的屬性,還有刪除對象中一項的需求。下面是刪除對象中一項的方法示例。
//定義一個數組 let arr = ["Lucy", "Mike", "Tom"]; //用Array.prototype.splice()方法刪除對象的某一項 arr.splice(1,1); console.log(arr); //輸出結果:["Lucy", "Tom"]
在上面的示例中,我們使用Array.prototype.splice()方法刪除了數組arr中的第二項,也就是“Mike”這一項。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/219901.html