一、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”这一项。