ES6中删除对象属性的方法
文章目录
- ES6中删除对象属性的方法
- 1. delete方法删除(单个)
- 1. 删除方法1
- 2. 删除方法2
- 2. Reflect.deleteProperty删除(单个)
- 3. 解构赋值删除(批量)
1. delete方法删除(单个)
delete 用于删除对象的某个属性,如果没有指向这个属性的引用,那它最终会被释放。
用法:
elete object.property
或delete object[property]
1. 删除方法1
<script>
//obj对象
const obj = {
page: 1,
size: 10,
sort: 'id',
order: 'desc',
model: {},
ext: [],
other: null
};
//1. 删除单个key方法1
delete obj.ext
delete obj.other
console.log("删除ext与other属性后,",obj)
// 输出如下
/*{
"page": 1,
"size": 10,
"sort": "id",
"order": "desc",
"model": {}
}*/
</script>
2. 删除方法2
<script>
//obj对象
const obj = {
page: 1,
size: 10,
sort: 'id',
order: 'desc',
model: {},
ext: [],
other: null
};
//2. 删除单个key方法2
delete obj["sort"]
delete obj["size","order"] //写多个,只删最会一个,这里会删除掉order,size依然存在
console.log("删除sort与order属性后,",obj)
//输出如下
/*{
"page": 1,
"size": 10,
"model": {},
"ext": [],
"other": null
}*/
</script>
2. Reflect.deleteProperty删除(单个)
Reflect.deleteProperty(object,property)方法等同于 delete obj[property],用于删除对象的性。
该方法返回一个布尔值。如果删除成功,或者被删除的性不存在,返回true;删除失败,被删除的厘性依然存在,返回 false。
如果 Reflect.deleteProperty(object,property)方法的第一个参数不是对象,会报错。
<script>
//obj对象
const obj = {
page: 1,
size: 10,
sort: 'id',
order: 'desc',
model: {},
ext: [],
other: null
};
Reflect.deleteProperty(obj,'other')
console.log("删除后的对象",obj)
//输出如下:
/* {
"page": 1,
"size": 10,
"sort": "id",
"order": "desc",
"model": {},
"ext": []
}*/
</script>
3. 解构赋值删除(批量)
利用解构赋值可删除对象中的多个属性
<script>
//obj对象
const obj = {
page: 1,
size: 10,
sort: 'id',
order: 'desc',
model: {},
ext: [],
other: null
};
//批量删除,利用解构赋值的方式(推荐)
const {sort,order,other,...newObj} = obj
console.log("删除sort,order,other属性后的新对象",newObj)
//输出如下:
/*{
"page": 1,
"size": 10,
"model": {},
"ext": []
}*/
</script>